nacl
Client helper for NATS/STAN
examples
connect to NATS
package main
import (
"fmt"
"github.com/jar3b/grawt"
"github.com/jar3b/nacl"
"github.com/kelseyhightower/envconfig"
)
func main() {
// get params
conf := config.NewConfig()
// init waiter (github.com/jar3b/grawt)
var waiter = grawt.NewWaiter()
// init nats
var subscriptions []*nacl.NatsSubscription
if err := nacl.SetupNats(conf.Nats.Host, conf.Nats.Port, conf.Nats.User, conf.Nats.Pass,
// handler called before app closed
// we need to terminate sub's properly and sometimes doing another actions (finalizers)
waiter.AddCloseHandler(func() {
nacl.FinalizeNats(&subscriptions)
}, false),
); err != nil {
waiter.Halt(fmt.Errorf("cannot connect to nats: %v", err))
}
defer nacl.NatsClient.Close()
// here we add some subscriptions and wait (using blocking call)
// ...
}
Description
Languages
Go
100%