33 lines
562 B
Go
33 lines
562 B
Go
package msghandlers
|
|
|
|
import (
|
|
"daemonSocketExample/daemonconn"
|
|
)
|
|
|
|
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)
|
|
}
|