龙卷风 websocket 的 ping/pong 实现

implementation of ping/pong for tornado websocket

我在 python 中有一个 websocket client 使用 tornado.websocket. WebSocketClientConnection 实现,它连接到远程服务器并通过 websocket 进行通信。早些时候我在应用层实现了类似 ping/pong 的反馈机制,以确保远程端点是否仍然响应。

我最近刚刚更新了我的 tornado 包,我在 WebSocketClientConnection 中遇到了 ping_interval。我在应用层删除了旧的 ping/pong 机制,并在我的实现中添加了这个 ping_interval

在此更新后,websocket 在提到的 ping_interval timeout 之后关闭。远程端的服务器处理传输层的 ping 并相应地响应。

  1. 目前我还没有实现 ping 方法所以我是否必须为 WebSocketClientConnection 实现 ping 方法?,
  2. 我是否必须在 ping 方法中发送任何数据?
  3. 我是否必须实施任何方法来处理远程服务器为 ping 请求发送的响应?
  1. 没有,It's implemented by default
  2. You may but don't have to.
  3. 我假设通过响应你已经打过乒乓球了。如果您使用 ping_interval,则不必处理 pong,但如果您手动发送 ping,则必须自己控制超时,因此您必须通过实施 tornado.websocket.WebSocketClientConnection.on_pong 方法来处理 pong。