Python 龙卷风 JSON 流

Python Tornado JSON Stream

我需要一些帮助,抱歉我的英语不好=)

我有一个 API tornado 请求处理程序,它接收到一个 JSON 和一个 API 方法,然后我解析 API 方法并启动那个特定的子函数方法或子 class 方法。

其中一个方法是 "getEvents",如果接收到 JSON "getEvents" 中的方法,那么第一个响应应该写入并闪烁一些 API 信息到输出缓冲区,但应该打开连接。

然后一个线程正在调用,从应用程序收集事件数据,当检测到新事件时,线程应该写入并刷新一个包含该事件数据的 JSON 到输出缓冲区。

请求 -> API 响应(连接保持打开状态) -> JSON 消息 -> JSON 消息 -> 等

这是否可能在请求处理程序的子函数中有一个协程,这种行为是否可能保持连接打开并不断发送 JSON MSG?

一些代码示例会很棒 =)
非常感谢。

BR 克里斯托夫

在 Tornado 方面,这很简单:只需写下您的消息,然后 await self.flush() 每条消息后:

async for i in some_queue:
    self.write(i)
    await self.flush()

但在客户端,事情比较棘手 - 大多数 JSON 解析器不能很好地处理连续的 JSON 对象,因此您可能需要某种显式分隔符或其他框架。如果你想支持浏览器客户端,你应该使用 websockets 或 server-sent events