fix: use random port for embedded NATS to avoid binding conflicts
Port 0 is treated as default (4222) by NATS server, causing hangs when that port is unavailable. Port -1 (RANDOM_PORT) binds to an OS-assigned free port, which is correct for an embedded server.
This commit is contained in:
10
nats.go
10
nats.go
@@ -9,6 +9,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/delaneyj/toolbelt/embeddednats"
|
||||
natsserver "github.com/nats-io/nats-server/v2/server"
|
||||
"github.com/nats-io/nats.go"
|
||||
)
|
||||
|
||||
@@ -50,7 +51,14 @@ func startDefaultNATS() (dn *defaultNATS, err error) {
|
||||
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
|
||||
ns, err := embeddednats.New(ctx, embeddednats.WithDirectory(dataDir))
|
||||
ns, err := embeddednats.New(ctx,
|
||||
embeddednats.WithDirectory(dataDir),
|
||||
embeddednats.WithNATSServerOptions(&natsserver.Options{
|
||||
JetStream: true,
|
||||
StoreDir: dataDir,
|
||||
Port: -1,
|
||||
}),
|
||||
)
|
||||
if err != nil {
|
||||
cancel()
|
||||
os.RemoveAll(dataDir)
|
||||
|
||||
Reference in New Issue
Block a user