【问题标题】:implementation of ping/pong for tornado websocket龙卷风 websocket 的 ping/pong 实现
【发布时间】:2018-09-06 10:00:05
【问题描述】:

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

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

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

  1. 目前我还没有实现ping方法,所以我应该为WebSocketClientConnection实现ping方法吗?,
  2. 我应该用ping方法发送任何数据吗?
  3. 我是否必须实现任何方法来处理远程服务器为ping 请求发送的响应?

【问题讨论】:

    标签: python-2.7 websocket tornado ping


    【解决方案1】:
    1. 不,It's implemented by default
    2. You may but don't have to
    3. 我假设您通过 响应 ment pong。如果您使用 ping_interval,则不必处理 pong,但如果您手动发送 ping,则必须自己控制超时,因此您必须通过实现 tornado.websocket.WebSocketClientConnection.on_pong 方法来处理 pong。

    【讨论】:

    • 嗨@Fian,如果我的服务器也是龙卷风并使用WebSocketHandler实现websocket,WebSocketHandler是否也必须发送pong来处理使用WebSocketClientConnection发送的ping?
    • WebSocketClientConnection 和 WebSocketHandler 都基于WebSocketProtocol13 类,默认情况下会定期执行 ping,如果在 ping_interval 时间内未收到 pong,则完成连接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-16
    • 2020-12-29
    • 2012-03-18
    • 1970-01-01
    相关资源
    最近更新 更多