【发布时间】:2017-08-31 14:38:55
【问题描述】:
我正在尝试将旧版 SSE 服务器 + SSE 客户端与龙卷风合并。 (从进程中收集 SSE,并通过 UDP 套接字将它们分发给客户端的服务器)我们发出的第一个 SSE GET 请求运行良好。唯一的问题是当用户离开 Web 应用程序并返回时,tornado 会被锁定。 Web 应用程序永远不会加载第二次。
我有一个非异步的 RequestHandler,并使用客户端等待一段时间 True 循环从非阻塞 python UDP 套接字读取。然后将这些消息写入并刷新到浏览器。浏览器成功接收 SSE。
在我的 RequestHandler 中,永远不会调用 on_connection_close 和 on_finish。这些应该停止客户端,并从 while True 循环中中断。这是因为我的 get 请求不是协程吗?
在 Tornado 中执行此操作的正确方法是什么?如果真的需要,我可以显示一个代码 sn-p,但问题应该是不言自明的。
【问题讨论】: