如何在GO的websocket中保持连接存活

时间:2014-05-14 06:13:09

标签: websocket go

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

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

我在谷歌搜索,看来websocket协议有一个乒乓心跳来维持连接,我想问一下code.google.com/p/go.net/websocket是否支持这个ping协议?登记/> 如果我想保持客户端和服务器之间的连接存活,我该怎么办?

2 个答案:

答案 0 :(得分:4)

此处为 gorilla / websocket 包提供了直接的解决方案。

caffe % ./examples/finetune_flickr_style/assemble_data.py -h

答案 1 :(得分:3)

最近2013年,go.net websocket库does not support (automatic) keep-alive messages。您有两种选择:

  • 实施"应用程序级别"通过定期让你的应用程序向管道发送消息(任一方向应该工作)来保持活着,这被另一方忽略。
  • 转移到支持保持活动的其他websocket库(like this one修改:看起来该库已被Gorilla websockets取代。