freifunkmanager/websocket/handler.go

28 lines
659 B
Go

package websocket
import (
log "github.com/sirupsen/logrus"
"github.com/genofire/golang-lib/websocket"
)
type WebsocketHandlerFunc func(*log.Entry, *websocket.Message) error
func (ws *WebsocketServer) MessageHandler() {
for msg := range ws.inputMSG {
logger := log.WithFields(log.Fields{
"session": msg.Session,
"id": msg.ID,
"subject": msg.Subject,
})
if handler, ok := ws.handlers[msg.Subject]; ok {
err := handler(logger, msg)
if err != nil {
logger.Errorf("websocket message '%s' cound not handle: %s", msg.Subject, err)
}
} else {
logger.Warnf("websocket message '%s' cound not handle", msg.Subject)
}
}
}