diff --git a/nacl.go b/nacl.go index ad00b0e..906cf2b 100644 --- a/nacl.go +++ b/nacl.go @@ -23,6 +23,30 @@ type ( NatsSubscription = nats.Subscription ) +func SetupNatsWithCreds(host string, port int, credsFile string, closeHandler *grawt.CloseHandler) error { + natsLock.Lock() + defer natsLock.Unlock() + var err error + + // connect + NatsClient, err = nats.Connect( + fmt.Sprintf("nats://%s:%d", host, port), + nats.UserCredentials(credsFile), + nats.ClosedHandler(func(conn *nats.Conn) { + if closeHandler != nil { + closeHandler.Halt(nil) + } + }), + nats.MaxReconnects(5), + nats.ReconnectWait(time.Second*2), + ) + if err != nil { + return fmt.Errorf("cannot connect to NATS: %v", err) + } + + return nil +} + func SetupNats(host string, port int, user string, pass string, closeHandler *grawt.CloseHandler) error { natsLock.Lock() defer natsLock.Unlock()