一尘不染

如何在GO的WebSocket中保持连接活跃

go

code.google.com/p/go.net/websocket在服务器中使用,因此客户端可以从服务器获取通知。

但是,似乎客户端连接到服务器后,如果客户端和服务器之间没有任何数据传输,服务器将在处返回EOF错误websocket.JSON.Receive(),这看起来像是一种超时机制。

我在Google中搜索过,看来websocket协议具有 乒乓
心跳来维持连接,我想问一下是否code.google.com/p/go.net/websocket支持此ping协议?
如果要保持客户端与服务器之间的连接有效,该怎么办?


阅读 415

收藏
2020-07-02

共1个答案

一尘不染

直到2013年,go.net
websocket库才不支持(自动)保持活动消息。您有两种选择:

  • 通过定期让您的应用程序沿着管道发送消息(任一方向都可以)来实现“应用程序级别”保持活动状态,而该消息将被另一方忽略。
  • 转到另一个不支持保持活动的websocket库(如该库) 编辑: 看来该库已被Gorilla websockets取代。
2020-07-02