WebSocket协议中的Ping / Pong消息

时间:2016-12-14 21:28:40

标签: node.js websocket

我正在实现一个WebSocket node.js服务器,它将浏览器websockets作为客户端。

我想实现一个ping / pong机制,其中服务器每隔5秒向客户端发送一个Ping帧。

所以我的问题是:

  1. 我应该在Ping帧中使用哪些数据有效负载?

  2. 发送Ping帧的建议间隔是什么?

  3. 浏览器是否可以向我的服务器发起ping请求,因此我需要实现对Ping事件的回复?

1 个答案:

答案 0 :(得分:1)

  1. 使用您想要的任何有效负载。 WebSocket只是一种传输,您可以决定它传输的数据。根据WebSocket规范:

      

    Ping框 MAY 包括“应用程序数据”。

    这意味着它根本不需要发送任何数据。

  2. 使用适用于您使用WebSockets实现的通信的任何时间间隔。

  3. WebSockets是双向的,因此浏览器可以向您的服务器发送Ping帧。根据规范:

      

    收到Ping帧后,端点必须发送Pong帧作为响应,除非它已经收到了关闭帧。它应该尽快响应Pong框架。 Pong帧在第5.5.3节中讨论。

         

    端点可以在建立连接之后和连接关闭之前随时发送Ping帧。

    这意味着任何一方都可以随时发送Ping。