【问题标题】:Mixing SSEs into Tornado将 SSE 混入 Tornado
【发布时间】: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,但问题应该是不言自明的。

【问题讨论】:

    标签: python tornado


    【解决方案1】:

    经过一些实验,我自己弄清楚了。

    on_finish() 从未被调用,因为我需要调用 finish(),并且 on_connection_close() 从未被调用,因为它不是协程。我能够通过使用关键字 yield 解决我的问题。

    更多信息可以在这里找到:http://www.tornadoweb.org/en/stable/guide/coroutines.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-11
      • 2018-12-24
      • 2020-09-26
      • 1970-01-01
      • 1970-01-01
      • 2012-06-06
      • 1970-01-01
      • 2013-06-23
      相关资源
      最近更新 更多