WriteMessage를 WritePreparedMessage로 변경

This commit is contained in:
2024-01-22 17:14:45 +09:00
parent 7e8afcd2a9
commit b100148f54
2 changed files with 21 additions and 12 deletions

View File

@ -93,10 +93,14 @@ func (r *room) loop(ctx context.Context, conns *map[string]*wsconn) (normalEnd b
enc.Encode(ds)
for _, conn := range *conns {
pmsg, err := websocket.NewPreparedMessage(websocket.TextMessage, buff.Bytes())
if err != nil {
logger.Println("websocket.NewPreparedMessage failed :", err)
} else {
r.sendMsgChan <- send_msg_queue_elem{
to: conn,
mt: websocket.TextMessage,
msg: buff.Bytes(),
pmsg: pmsg,
}
}
}
}

View File

@ -82,8 +82,8 @@ type EventReceiver interface {
type send_msg_queue_elem struct {
to *wsconn
mt int
msg []byte
pmsg *websocket.PreparedMessage
//msg []byte
}
type websocketHandlerBase struct {
@ -137,7 +137,7 @@ func NewWebsocketHandler(consumer session.Consumer, redisUrl string) (*Websocket
defer func() {
r := recover()
if r != nil {
logger.Println("send_msg_queue_elem sender recover :", r, string(elem.msg))
logger.Println("send_msg_queue_elem sender recover :", r)
}
}()
if elem == nil {
@ -147,7 +147,7 @@ func NewWebsocketHandler(consumer session.Consumer, redisUrl string) (*Websocket
return
}
elem.to.WriteMessage(elem.mt, elem.msg)
elem.to.WritePreparedMessage(elem.pmsg)
}
for elem := range sendchan {
@ -327,10 +327,15 @@ func (ws *WebsocketHandler) mainLoop(ctx context.Context) {
Body: usermsg.Body,
Tag: usermsg.Tag,
})
pmsg, err := websocket.NewPreparedMessage(websocket.TextMessage, ds)
if err != nil {
logger.Println("websocket.NewPreparedMessage failed :", err)
return false
}
ws.sendMsgChan <- send_msg_queue_elem{
to: conn,
mt: websocket.TextMessage,
msg: ds,
pmsg: pmsg,
}
return true