Manager: better SocketIO error checking & logging

This commit is contained in:
Sybren A. Stüvel 2022-04-05 12:18:50 +02:00
parent 5e5fa57fa4
commit c875745bd4

View File

@ -32,31 +32,49 @@ func socketIOServer() *gosocketio.Server {
sio := gosocketio.NewServer(transport.GetDefaultWebsocketTransport()) sio := gosocketio.NewServer(transport.GetDefaultWebsocketTransport())
log.Info().Msg("initialising SocketIO") log.Info().Msg("initialising SocketIO")
var err error
// socket connection // socket connection
sio.On(gosocketio.OnConnection, func(c *gosocketio.Channel) { err = sio.On(gosocketio.OnConnection, func(c *gosocketio.Channel) {
log.Info().Str("clientID", c.Id()).Msg("connected") log.Debug().Str("clientID", c.Id()).Msg("socketIO: connected")
c.Join("Room") if err := c.Join("Room"); err != nil {
log.Warn().Err(err).Str("clientID", c.Id()).Msg("socketIO: unable to make client join broadcast message room")
}
}) })
if err != nil {
log.Error().Err(err).Msg("socketIO: unable to register OnConnection handler")
}
// socket disconnection // socket disconnection
sio.On(gosocketio.OnDisconnection, func(c *gosocketio.Channel) { err = sio.On(gosocketio.OnDisconnection, func(c *gosocketio.Channel) {
log.Info().Str("clientID", c.Id()).Msg("disconnected") log.Debug().Str("clientID", c.Id()).Msg("socketIO: disconnected")
c.Leave("Room") if err := c.Leave("Room"); err != nil {
log.Warn().Err(err).Str("clientID", c.Id()).Msg("socketIO: unable to make client leave broadcast message room")
}
}) })
if err != nil {
log.Error().Err(err).Msg("socketIO: unable to register OnDisconnection handler")
}
sio.On(gosocketio.OnError, func(c *gosocketio.Channel) { err = sio.On(gosocketio.OnError, func(c *gosocketio.Channel) {
log.Warn().Interface("c", c).Msg("socketio error") log.Warn().Interface("c", c).Msg("socketIO: socketio error")
}) })
if err != nil {
log.Error().Err(err).Msg("socketIO: unable to register OnError handler")
}
// chat socket // chat socket
sio.On("/chat", func(c *gosocketio.Channel, message Message) string { err = sio.On("/chat", func(c *gosocketio.Channel, message Message) string {
log.Info().Str("clientID", c.Id()). log.Info().Str("clientID", c.Id()).
Str("text", message.Text). Str("text", message.Text).
Str("name", message.Name). Str("name", message.Name).
Msg("message received") Msg("socketIO: message received")
c.BroadcastTo("Room", "/message", message.Text) c.BroadcastTo("Room", "/message", message.Text)
return "message sent successfully." return "message sent successfully."
}) })
if err != nil {
log.Error().Err(err).Msg("socketIO: unable to register /chat handler")
}
return sio return sio
} }