亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Gorilla websocket,一個事件中多條消息

Gorilla websocket,一個事件中多條消息

Go
Cats萌萌 2023-08-14 17:24:22
我正在使用來自 gorilla websockets 的聊天應用程序示例,但我有一個問題,有時,當后端需要向客戶端發送兩條不同的消息時,它們僅在一個消息事件中發送,這對我來說很糟糕,因為 JSON.parse從一個字符串解析 2 個 json 將失敗。我可以按換行符進行分割并從消息中獲取每個 json,但我不喜歡這樣做。如果我在后端設置超時,一切都會正常。我可以做些什么來防止這種情況發生嗎?如果不是,你能解釋一下為什么嗎?這是聊天示例: https ://github.com/gorilla/websocket/tree/master/examples/chat這是我的代碼,我在其中廣播了 2 條消息:if err == nil {    c.SendMessageWithOrders(DB)    data := models.EventSuccess{        Event: utils.EventOrdersCreateSuccess,    }    toReturnBytes, err := json.Marshal(data)    if err == nil {    toReturn := BroadcastOne{        ID:      c.ID,        Message: toReturnBytes,    }    NewHub.broadcastOne <- &toReturn    }}c.SendMessageWithOrders(DB)NewHub.broadcastOne <- &toReturn用不同的數據制作
查看完整描述

1 回答

?
慕無忌1623718

TA貢獻1744條經驗 獲得超4個贊

client.go中的以下代碼通過將排隊的聊天消息作為單個 WebSocket 消息發送來減少通過網絡發送的數據量:

? n := len(c.send)

? ? ? ? for i := 0; i < n; i++ {

? ? ? ? ? ? w.Write(newline)

? ? ? ? ? ? w.Write(<-c.send)

? ? ? ? }

通過從示例中刪除代碼來修復問題。不需要優化。


查看完整回答
反對 回復 2023-08-14
  • 1 回答
  • 0 關注
  • 172 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號