go websocket心跳
在 github.com/gorilla/websocket 包裡,有一個簡單的例子,裡面有這麼一段程式碼
func (c *Client) writeData() {
ticker := time.NewTicker(pingPeriod)
defer func() {
ticker.Stop()
c.conn.Close()
}()
for {
select {
case message, ok := <-c.send:
c.conn.SetWriteDeadline(time.Now().Add(writeTimeOut))
if !ok {
c.conn.WriteMessage(websocket.CloseMessage, []byte{})
return
}
w, err := c.conn.NextWriter(websocket.TextMessage)
if err != nil {
return
}
log.Printf("writeData.....%s, uid is:%d", message, c.uid)
w.Write(message)
if err := w.Close(); err != nil {
return
}
log.Printf("writeData.end....%s", message)
case <-ticker.C:
log.Println("here.....")
c.conn.SetWriteDeadline(time.Now().Add(writeTimeOut))
if err := c.conn.WriteMessage(websocket.PingMessage, []byte{}); err != nil {
return
}
}
}
}
c.conn.WriteMessage(websocket.PingMessage, [] byte{}) 是向 client 傳送 ping 資訊,怎麼沒看到處理 client pong 訊息的程式碼呢? gorilla/websocket 是怎麼處理 pong 訊息的呢?看了半天也沒找到。
更多原創文章乾貨分享,請關注公眾號
- 加微信實戰群請加微信(註明:實戰群):gocnio
相關文章
- go websocketGoWeb
- 微信小程式實現WebSocket心跳重連微信小程式Web
- 理解WebSocket心跳及重連機制(五)Web
- 好用的websocket 心跳重連js指令碼WebJS指令碼
- websocket-heartbeat-js心跳檢測庫正式釋出WebJS
- uni-app中websocket的使用 斷開重連、心跳機制APPWeb
- Go 語言 WebSocket 除錯工具GoWeb除錯
- 在 go websocket server 與 javascript websocket client 互動中使用 flatbuffersGoWebServerJavaScriptclient
- 使用Go語言建立WebSocket服務GoWeb
- 使用 Go 語言建立 WebSocket 服務GoWeb
- Go使用websocket實現彈幕功能GoWeb
- [譯] Go 實現百萬 WebSocket 連線GoWeb
- Go 語言 Web tail -f 工具, 基於 WebSocketGoWebAI
- 心跳包
- 瀏覽器與go語言的websocket通訊瀏覽器GoWeb
- Go實現基於WebSocket的彈幕服務GoWeb
- 用 Go + WebSocket 快速實現一個 chat 服務GoWeb
- html5+go+websocket簡單例項程式碼HTMLGoWeb單例
- 聊聊心跳機制及netty心跳實現Netty
- 玩轉 Go 生態|Hertz WebSocket 擴充套件簡析GoWeb套件
- 基於Netty實現的WebSocket聊天室--支援多人同時線上及定時心跳檢測NettyWeb
- Ceph心跳機制
- Netty--心跳Netty
- Oracle Clusterware的心跳Oracle
- java 心跳機制Java
- Go語言:xterm.js-websocket Web終端堡壘機GoJSWeb
- 01 . Go語言實現SSH遠端終端及WebSocketGoWeb
- gws: 兼顧效能與使用者友好的go websocket serverGoWebServer
- 用 Go 編寫一個簡單的 WebSocket 推送服務GoWeb
- 我的javascript心跳機JavaScript
- Golang 心跳的實現Golang
- 心跳檢測機制
- Go+websocket+protobuf 做的實時線上互動聊天工具GoWeb
- WebSocketWeb
- [Android]Okhttp心跳策略研究AndroidHTTP
- Kafka之消費與心跳Kafka
- 記一次Go websocket 專案記憶體洩露排查 + 使用Go pprof定位記憶體洩露GoWeb記憶體洩露
- java netty 實現 websocket 服務端和客戶端雙向通訊 實現心跳和斷線重連 完整示例JavaNettyWeb服務端客戶端