From c71a74762de78a2f0b7b7d1722085619237df409 Mon Sep 17 00:00:00 2001 From: mountain Date: Thu, 1 Feb 2024 18:28:59 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9B=B9=EC=86=8C=EC=BC=93=20=EB=A9=94?= =?UTF-8?q?=EC=8B=9C=EC=A7=80=20=EC=A0=84=EC=86=A1=20=EC=B1=84=EB=84=90=20?= =?UTF-8?q?=EB=8B=A8=EC=9D=BC=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wshandler/room.go | 2 +- wshandler/wshandler.go | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/wshandler/room.go b/wshandler/room.go index decb7c6..6d966cb 100644 --- a/wshandler/room.go +++ b/wshandler/room.go @@ -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, } } diff --git a/wshandler/wshandler.go b/wshandler/wshandler.go index c323dc3..d9d9d21 100644 --- a/wshandler/wshandler.go +++ b/wshandler/wshandler.go @@ -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, }