binary message는 커맨드

This commit is contained in:
2023-07-14 01:27:11 +09:00
parent 9df68a4d07
commit 30005ea0e3

View File

@ -2,6 +2,7 @@ package core
import (
"context"
"encoding/json"
"errors"
"io"
"net"
@ -266,11 +267,28 @@ func (tv *Tavern) RegisterHandlers(ctx context.Context, serveMux *http.ServeMux,
return nil
}
type tavernCommandMessage struct {
Cmd string
Args []string
}
func (sub *subTavern) clientMessageReceived(sender *wshandler.Sender, messageType wshandler.WebSocketMessageType, body io.Reader) {
if messageType == wshandler.Connected {
sub.cm.add(sender.Accid, sender.Alias)
} else if messageType == wshandler.Disconnected {
sub.cm.remove(sender.Accid)
} else if messageType == wshandler.BinaryMessage {
var msg tavernCommandMessage
dec := json.NewDecoder(body)
if err := dec.Decode(&msg); err == nil {
switch msg.Cmd {
case "EnterChannel":
sub.wsh.EnterRoom(sub.region, msg.Args[0], sender.Accid)
case "LeaveChannel":
sub.wsh.LeaveRoom(sub.region, msg.Args[0], sender.Accid)
}
}
}
}