Browse Source

Reconnect NATS forever and log NATS connection events.

pull/242/merge
Simon Eisenmann 9 years ago
parent
commit
27d71da896
  1. 4
      src/app/spreed-webrtc-server/bus_manager.go
  2. 21
      src/app/spreed-webrtc-server/nats.go

4
src/app/spreed-webrtc-server/bus_manager.go

@ -72,9 +72,9 @@ func NewBusManager(id string, useNats bool, subjectPrefix string) BusManager {
if useNats { if useNats {
b, err = newNatsBus(id, subjectPrefix) b, err = newNatsBus(id, subjectPrefix)
if err == nil { if err == nil {
log.Println("Nats bus connected") log.Println("NATS bus connected")
} else { } else {
log.Println("Error connecting nats bus", err) log.Println("Error connecting NATS bus", err)
b = &noopBus{id} b = &noopBus{id}
} }
} else { } else {

21
src/app/spreed-webrtc-server/nats.go

@ -20,7 +20,26 @@ var DefaultNatsURL = nats.DefaultURL
// and tries to establish the connection. It returns the connection // and tries to establish the connection. It returns the connection
// and any connection error encountered. // and any connection error encountered.
func NewNatsConnection() (*nats.EncodedConn, error) { func NewNatsConnection() (*nats.EncodedConn, error) {
nc, err := nats.Connect(DefaultNatsURL) opts := &nats.Options{
Url: DefaultNatsURL,
AllowReconnect: true,
MaxReconnect: -1, // Reconnect forever.
ReconnectWait: nats.DefaultReconnectWait,
Timeout: nats.DefaultTimeout,
PingInterval: nats.DefaultPingInterval,
MaxPingsOut: nats.DefaultMaxPingOut,
SubChanLen: nats.DefaultMaxChanLen,
ClosedCB: func(conn *nats.Conn) {
log.Println("NATS connection closed")
},
DisconnectedCB: func(conn *nats.Conn) {
log.Println("NATS disconnected")
},
ReconnectedCB: func(conn *nats.Conn) {
log.Println("NATS reconnected")
},
}
nc, err := opts.Connect()
if err != nil { if err != nil {
return nil, err return nil, err
} }

Loading…
Cancel
Save