Starlette的SSE插件

sse-starlette的Python项目详细描述


服务器发送了StarletteFastAPI的事件

背景:https://sysid.github.io/sse/

安装:

pip install sse-starlette

用法:

^{pr2}$

输出:
output

警告:SSE流不能与GZipMiddleware结合使用。在

请注意,要正确关闭服务器,应用程序必须停止所有 运行任务(生成器)。否则,您可能会遇到以下警告 关闭时:Waiting for background tasks to complete. (CTRL+C to force quit)。在

客户端断开连接需要在请求处理程序中处理(请参见示例.py)公司名称:

asyncdefendless(req:Request):asyncdefevent_publisher():i=0try:whileTrue:disconnected=awaitreq.is_disconnected()ifdisconnected:_log.info(f"Disconnecting client {req.client}")breaki+=1yielddict(data=i)awaitasyncio.sleep(0.2)_log.info(f"Disconnected from client {req.client}")exceptasyncio.CancelledErrorase:_log.info(f"Disconnected from client (via refresh/close) {req.client}")# Do any other cleanup, if anyraiseereturnEventSourceResponse(event_publisher())

运行测试:

maketest

变更日志

0.6.0(2020-10-24)

  • 在使用uvicorn的情况下:monkeypatch uvicorn信号处理程序, 为了优雅地关闭长时间运行的处理程序/生成器。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何将HashMap<String,Object>从一个活动传递到另一个活动   java如何手动加密socket连接的流量?   java正则表达式生成一个不正确的结果   Java方法引用具有泛型参数的方法   java app setBackground()错误:不兼容的类型:int无法转换为Drawable   java是启动Spring引导而不是SpringApplication的其他方法。跑   无法打开java类路径资源[org/quartz/impl/jdbcjobstore/tables_h2.sql],因为它不存在   spring使用Java,如何确定来自tomcat Web服务器的出站服务调用?   java获取多个同名的XML元素JAXB   java使用Ant从同一代码库构建Swing和Android应用程序   JComponent的java重绘方法不起作用   java目标不可访问,标识符“beanName”解析为null   smtp是否有支持esmtp管道的java api?   java如何在Spring中自动连接业务对象   java在Hibernate中没有其他保存实体的方法吗?   针对两个客户机的SpringJavaWeb应用程序项目开发   使用split的java标记化输入