Python Tornado JSON Stream

问题描述 投票:0回答:1

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

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

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

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

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

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

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

BR Christoph

python tornado
1个回答
0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.