멤버 도큐먼트를 직접 메시지 보내는 방식으로 변경
This commit is contained in:
@ -267,26 +267,31 @@ func (tv *Tavern) RegisterHandlers(ctx context.Context, serveMux *http.ServeMux,
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type tavernCommandMessage struct {
|
|
||||||
Cmd string
|
|
||||||
Args []string
|
|
||||||
}
|
|
||||||
|
|
||||||
func (sub *subTavern) clientMessageReceived(sender *wshandler.Sender, messageType wshandler.WebSocketMessageType, body io.Reader) {
|
func (sub *subTavern) clientMessageReceived(sender *wshandler.Sender, messageType wshandler.WebSocketMessageType, body io.Reader) {
|
||||||
if messageType == wshandler.Connected {
|
if messageType == wshandler.Connected {
|
||||||
sub.cm.add(sender.Accid, sender.Alias)
|
sub.cm.add(sender.Accid, sender.Alias)
|
||||||
} else if messageType == wshandler.Disconnected {
|
} else if messageType == wshandler.Disconnected {
|
||||||
sub.cm.remove(sender.Accid)
|
sub.cm.remove(sender.Accid)
|
||||||
} else if messageType == wshandler.BinaryMessage {
|
} else if messageType == wshandler.BinaryMessage {
|
||||||
var msg tavernCommandMessage
|
var msg map[string][]any
|
||||||
dec := json.NewDecoder(body)
|
dec := json.NewDecoder(body)
|
||||||
if err := dec.Decode(&msg); err == nil {
|
if err := dec.Decode(&msg); err == nil {
|
||||||
switch msg.Cmd {
|
for cmd, args := range msg {
|
||||||
case "EnterChannel":
|
switch cmd {
|
||||||
sub.wsh.EnterRoom(sub.region, msg.Args[0], sender.Accid)
|
case "EnterChannel":
|
||||||
|
sub.wsh.EnterRoom(sub.region, args[0].(string), sender.Accid)
|
||||||
|
|
||||||
case "LeaveChannel":
|
case "LeaveChannel":
|
||||||
sub.wsh.LeaveRoom(sub.region, msg.Args[0], sender.Accid)
|
sub.wsh.LeaveRoom(sub.region, args[0].(string), sender.Accid)
|
||||||
|
|
||||||
|
case "UpdateGroupMemberDocument":
|
||||||
|
typename := args[0].(string)
|
||||||
|
gidobj, _ := primitive.ObjectIDFromHex(args[1].(string))
|
||||||
|
doc := args[2].(map[string]any)
|
||||||
|
if group := sub.groups[typename]; group != nil {
|
||||||
|
group.UpdateMemberDocument(gidobj, sender.Accid, doc)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user