当前位置: 首页 > 面试题库 >

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

奚才良
2023-03-14
问题内容

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

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

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


问题答案:

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

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


 类似资料:
  • 我有一个Android应用程序,即时通讯是其中一个关键功能。为了实现IM特性,我们使用基于的推送服务器。 编辑:我曾建议使用前台服务,但下午不喜欢通知托盘总是显示在状态栏,他希望保持干净。 任何建议都将不胜感激!

  • 问题内容: 我正在使用POST方法。我需要创建一次,并且应该使用Keep Alive Connection。但是我认为,它每次都会建立一个新的连接。 因此,我需要使用 保持活动 连接。 这是我的代码段,很多帮助将不胜感激。 而且logcat日志是: 问题答案: 10:07:29.746:D / org.apache.http.headers(1529):>>连接:保持活动 您正在要求保持活动状态。

  • 问题内容: 错误代码:2013。查询期间丢失与MySQL服务器的连接 我正在使用MySQL Workbench。另外,我正在运行一批插入件,总共约1000行(例如,相乘1000次),每批插入都花费相当多的时间,其中一些超过600秒。 如何配置工作台,使其在一夜之间继续工作,而又不停止且不丢失连接? 问题答案: 从现在不可用的互联网档案中: 转到“编辑”->“首选项”->“ SQL编辑器”,然后将此

  • 我正在创建一个客户端服务器应用程序。服务器已经设计好,等待从客户端连接。现在在客户机部分中,我希望在应用程序的整个生命周期中保持连接活动,并且只有当主客户机应用程序关闭或关闭或者服务器关闭它时,连接才会关闭。 在处理程序中我有:

  • 我在Go中有以下代码。Go使用超文本传输协议保持连接。因此,根据我的理解,不会创建新连接,因为Go语言使用默认的持久连接。 > 据我所知,HTTP持久连接一次只能发出一个请求,即第二个请求只能在第一次响应之后发出。然而,如果多个线程调用会发生什么?将在前一个请求得到响应之前是否发送另一个请求? 我假设服务器超时了客户端建立的任何保持活动的连接。如果服务器超时,那么下一次,它会建立新的连接吗?

  • 我的设置是cloudflare- 这是nginx为websocket连接记录的内容:162.158。75.125--[29/Oct/2016:00:01:47 0000]“GET/HTTP/1.1”101 1047-“Mozilla/5.0(X11;Linux x86_64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/53.0.2785.143 Safari/53