WebSockets,如何实现ping?

WebSockets, how to implement ping?

我已经在 Sinatra/Faye Websocket 中创建了一个 WebSockets 服务器。它有一些内置的 ping 客户端功能,但它不起作用。所以我使用一个休眠 N 秒的线程手动 ping 客户端,然后通过套接字发送一些东西。

当我不执行 ping 操作时,连接会在 60 秒不活动后被客户端关闭。

如何正确操作?

我会重新考虑是否必须使用 ping 选项...它几乎没有被使用,我认为如果它是最好的解决方案,Faye 会实施工作流程。

我会创建一个 javascript 计时器,它会通过 websocket 发送实际数据,调用一个空事件。

如果您的服务器端应用程序忽略了该数据,您将获得一个基于 javascript 的有效 ping,并允许您进行一些简单的 ping 可能缺少的控制措施(例如例如记录用户的最后一次活动时间,就像 Facebook 那样,以及其他选项)。