Listening for Reconnect Events
// Connection event handlers are invoked asynchronously
// and the state of the connection may have changed when
// the callback is invoked.
nc, err := nats.Connect("demo.nats.io",
nats.DisconnectErrHandler(func(nc *nats.Conn, err error) {
// handle disconnect error event
}),
nats.ReconnectHandler(func(nc *nats.Conn) {
// handle reconnect event
}))
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Do something with the connectionclass MyConnectionListener implements ConnectionListener {
public void connectionEvent(Connection conn, Events event) {
switch (event) {
case CONNECTED:
// The connection has successfully completed the handshake with the nats-server.
break;
case CLOSED:
// The connection is permanently closed, either by manual action or failed reconnects
break;
case DISCONNECTED:
// The connection lost its connection, but may try to reconnect if configured to
break;
case RECONNECTED:
// The connection was connected, lost its connection and successfully reconnected.
break;
case RESUBSCRIBED:
// The connection was reconnected and the server has been notified of all subscriptions.
break;
case DISCOVERED_SERVERS:
// The connection was made aware of new servers from the current server connection.
break;
case LAME_DUCK:
// connected server is coming down soon, might want to prepare for it
break;
}
}
}
MyConnectionListener listener = new MyConnectionListener();
Options options = new Options.Builder()
.server("nats://demo.nats.io:4222")
.connectionListener(listener)
.build();
Connection nc = Nats.connect(options);
// Do something with the connection
nc.close();Last updated
Was this helpful?