package msghandlers import ( "daemonSocketExample/daemonconn" "log/slog" ) type MessageHandler func(daemonconn.Message) error var Handlers = map[uint32]MessageHandler{ daemonconn.MessageTypeEchoRequest: handleEchoRequest, } func HandleDaemonConn(conn daemonconn.DaemonConn) error { msg, err := conn.ReadMessage() for err == nil { err := handleMessage(msg) if err != nil { return err } msg, err = conn.ReadMessage() } return err } func handleMessage(msg daemonconn.Message) error { handlerFunc := Handlers[msg.TypeID()] return handlerFunc(msg) } func handleEchoRequest(msg daemonconn.Message) error { echoRequest := msg.(daemonconn.EchoRequest) slog.Info("Got echo request", "echoByte", echoRequest.EchoByte) return nil }