python - asyncio.sleep 导致 Tornado websocket 断开连接
问题描述
我们已经设置
WEBSOCKET_PING_INTERVAL_SEC = 2
WEBSOCKET_PING_TIMEOUT_SEC = 4
(我们传递给 Tornado 的 websocket 处理程序的参数。)
现在,每当我们在代码中执行 long (> 6) asyncio.sleep 时,我们的 websocket 就会断开连接,而常规 time.sleep 不会断开它。显然,websocket ping 间隔似乎与 asyncio.sleep 不兼容。
我们应该改变什么来解决这个问题?(假设我们仍然需要总共 6 秒来检测断开连接。)
解决方案
Tornado 中的帧处理似乎是按顺序完成的,这意味着如果长时间处理不同的消息,则不会及时处理 ping。
我们在这里的 Tornado GitHub 存储库中打开了一个问题。
推荐阅读
- c++ - Qt橡皮筋没有被绘制
- sql-server - SQL表值函数没有给出正确的值
- spring - 将一个 MockBean 注入另一个
- amazon-web-services - spring data flow : 使用 pod-annotations 将 IAM 角色分配给 pod
- powershell - 如何从 URL 下载所有文件?
- c++ - 如何将不可编译的配置文件添加到 QT 项目中?
- javascript - 用户配置文件信息 - 将其保存在 localStorage 或 Ngrx
- php - json_encode 将单个元素数组视为对象
- html - 输入类型“搜索”取消按钮未在 Firefox、IE 和 Edge 中显示
- reactjs - TypeError:this.state.requests.map 不是函数