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

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) logger.Println("websocket.NewPreparedMessage failed :", err)
} else { } else {
r.sendMsgChan <- send_msg_queue_elem{ r.sendMsgChan <- send_msg_queue_elem{
to: conn, to: conn.Conn,
pmsg: pmsg, pmsg: pmsg,
} }
} }

View File

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