fastAPI 中的异步心跳

async heartbeat in fastAPI

我正在重构一个项目,以便从使用 flask-socketio 的 Flask 迁移到使用异步的 FastAPI。这样做的两个主要原因是停止使用线程来完成 async 可以做的事情,以及在工作中与其他开发人员保持一致。客户端是 React with Redux。

尝试在服务器端设置一个基本的 'heartbeat',每秒向所有客户端发送一个 0/​​1 信号。似乎无法弄清楚该怎么做。 我试过使用 StreamingResponse() 方法,但它只是等待给定的函数完成,然后发送一整堆 1 和 0。

关于如何使用 FastAPI 设置 'always running' 函数以实时流式传输简单数据的任何想法?我有 3 个函数需要执行此操作。

我也研究过 flask-sse,但它需要 redis,我宁愿避免使用它。

不是问题的真正解决方案,但套接字可能是不可避免的。因为无论如何我都在使用 FastAPI,所以我将只使用 'built-in' 网络套接字。我关注了@Thomasleveil,现在有了一个运行良好的应用程序。