WriteMessage를 WritePreparedMessage로 변경
This commit is contained in:
@ -93,10 +93,14 @@ func (r *room) loop(ctx context.Context, conns *map[string]*wsconn) (normalEnd b
|
||||
enc.Encode(ds)
|
||||
|
||||
for _, conn := range *conns {
|
||||
r.sendMsgChan <- send_msg_queue_elem{
|
||||
to: conn,
|
||||
mt: websocket.TextMessage,
|
||||
msg: buff.Bytes(),
|
||||
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,
|
||||
pmsg: pmsg,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -81,9 +81,9 @@ type EventReceiver interface {
|
||||
}
|
||||
|
||||
type send_msg_queue_elem struct {
|
||||
to *wsconn
|
||||
mt int
|
||||
msg []byte
|
||||
to *wsconn
|
||||
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,
|
||||
to: conn,
|
||||
pmsg: pmsg,
|
||||
}
|
||||
|
||||
return true
|
||||
|
||||
Reference in New Issue
Block a user