Python Tornado JSON Stream

时间:2017-04-21 10:32:09

标签: python tornado

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

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

其中一个方法是“getEvents”,如果接收到的JSON“getEvents”中的方法然后第一个响应应该写入并将一些API信息刷新到输出缓冲区但是应该打开连接。

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

请求 - > API响应(连接保持打开) - > JSON MSG - > JSON MSG - >等

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

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

BR Christoph

1 个答案:

答案 0 :(得分:0)

在龙卷风方面,这很简单:只需在每个消息后写下你的消息和await self.flush()

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

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