WebSockets,如何实现 ping?

Posted

技术标签:

【中文标题】WebSockets,如何实现 ping?【英文标题】:WebSockets, how to implement ping? 【发布时间】:2015-04-13 10:17:52 【问题描述】:

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

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

如何正确操作?

【问题讨论】:

【参考方案1】:

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

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

如果您的服务器端应用忽略了这些数据,那么您就有了一个基于 javascript 的有效 ping,并允许您进行一些简单的ping 可能缺少的控制措施(例如记录用户的上次活动时间,像 Facebook 一样,还有其他选择)。

【讨论】:

以上是关于WebSockets,如何实现 ping?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Python websockets 库获取“ping”调用的“pong”响应?

Websockets是如何实现的?

LAMP 专家如何轻松实现 WebSockets?

System.Net.WebSockets 乒乓球

Websockets 如何区分正在发送的数据

如何使用 websockets 通过 Flask 向特定用户发送消息?