带有 Einaros WebSocket 的 NodeJS:客户端 Ping 服务器 VS 服务器 Ping 客户端

Posted

技术标签:

【中文标题】带有 Einaros WebSocket 的 NodeJS:客户端 Ping 服务器 VS 服务器 Ping 客户端【英文标题】:NodeJS with Einaros WebSocket : Client Ping Server VS Server Ping Client 【发布时间】:2014-08-18 11:48:47 【问题描述】:

我正在使用 NodeJS 和 Einaros WS 模块开发 WebSocket 服务,我提出了这个问题:NodeJS Einaros WS Connection Timeout 显然没有人知道答案,所以我认为我应该编写自己的基于乒乓球的系统来检查客户端是否是否仍然连接。

我不确定我应该在服务器端还是客户端编写代码;我的意思是如果服务器应该 ping 客户端或者...客户端(这是我自己的 websocket 应用程序)应该 ping 服务器。

这两种方法有区别吗?

【问题讨论】:

【参考方案1】:

它被称为心跳,通常由客户端每 5 秒发送一次,使用 ping 帧 (0x09) 作为操作码,而服务器以 pong 帧 (0xA) 作为操作码进行响应。

理论上,是服务器还是客户端发起心跳并不重要,但在实际情况下,客户端通常更好地保持自己更新服务器是否在那里能够通知尽快给用户。

【讨论】:

以上是关于带有 Einaros WebSocket 的 NodeJS:客户端 Ping 服务器 VS 服务器 Ping 客户端的主要内容,如果未能解决你的问题,请参考以下文章

多个连接,但单个 websocket.on("message") 事件发射器

Python程序中 import websocket 报错 No module named websocket

Python程序中 import websocket 报错 No module named websocket

如何使用带有 cookie 的 React Native 的 WebSocket

带有 Gui 的 Websocket

带有 Angular 和 Spring 的 Websocket