웹소켓 메시지 전송 채널 단일화

This commit is contained in:
2024-02-01 18:28:59 +09:00
parent d2f94b502b
commit c71a74762d
2 changed files with 11 additions and 3 deletions

View File

@ -98,7 +98,7 @@ func (r *room) loop(ctx context.Context, conns *map[string]*wsconn) (normalEnd b
logger.Println("websocket.NewPreparedMessage failed :", err)
} else {
r.sendMsgChan <- send_msg_queue_elem{
to: conn,
to: conn.Conn,
pmsg: pmsg,
}
}

View File

@ -81,7 +81,7 @@ type EventReceiver interface {
}
type send_msg_queue_elem struct {
to *wsconn
to *websocket.Conn
pmsg *websocket.PreparedMessage
//msg []byte
}
@ -196,6 +196,14 @@ func (ws *WebsocketHandler) SendUpstreamMessage(msg *UpstreamMessage) {
ws.localDeliveryChan <- msg
}
func (ws *WebsocketHandler) WriteDirectMessage(c *websocket.Conn, messageType int, data []byte) {
pmsg, _ := websocket.NewPreparedMessage(messageType, data)
ws.sendMsgChan <- send_msg_queue_elem{
to: c,
pmsg: pmsg,
}
}
func (ws *WebsocketHandler) EnterRoom(room string, accid primitive.ObjectID) {
ws.localDeliveryChan <- &commandMessage{
Cmd: commandType_EnterRoom,
@ -334,7 +342,7 @@ func (ws *WebsocketHandler) mainLoop(ctx context.Context) {
}
ws.sendMsgChan <- send_msg_queue_elem{
to: conn,
to: conn.Conn,
pmsg: pmsg,
}