龙卷风 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
并相应地响应。
- 目前我还没有实现
ping
方法所以我是否必须为 WebSocketClientConnection
实现 ping
方法?,
- 我是否必须在
ping
方法中发送任何数据?
- 我是否必须实施任何方法来处理远程服务器为
ping
请求发送的响应?
- 没有,It's implemented by default。
- You may but don't have to.
- 我假设通过响应你已经打过乒乓球了。如果您使用 ping_interval,则不必处理 pong,但如果您手动发送 ping,则必须自己控制超时,因此您必须通过实施 tornado.websocket.WebSocketClientConnection.on_pong 方法来处理 pong。
我在 python 中有一个 websocket client
使用 tornado.websocket.
WebSocketClientConnection
实现,它连接到远程服务器并通过 websocket
进行通信。早些时候我在应用层实现了类似 ping/pong
的反馈机制,以确保远程端点是否仍然响应。
我最近刚刚更新了我的 tornado
包,我在 WebSocketClientConnection
中遇到了 ping_interval
。我在应用层删除了旧的 ping/pong
机制,并在我的实现中添加了这个 ping_interval
。
在此更新后,websocket
在提到的 ping_interval timeout
之后关闭。远程端的服务器处理传输层的 ping
并相应地响应。
- 目前我还没有实现
ping
方法所以我是否必须为WebSocketClientConnection
实现ping
方法?, - 我是否必须在
ping
方法中发送任何数据? - 我是否必须实施任何方法来处理远程服务器为
ping
请求发送的响应?
- 没有,It's implemented by default。
- You may but don't have to.
- 我假设通过响应你已经打过乒乓球了。如果您使用 ping_interval,则不必处理 pong,但如果您手动发送 ping,则必须自己控制超时,因此您必须通过实施 tornado.websocket.WebSocketClientConnection.on_pong 方法来处理 pong。