如何将来自客户端的消息存储在服务器中并通过 Flask 中的某些路由进一步发送

How to store a message from the client in the server and send it further via some route in Flask

这是从 Web 应用程序向后端应用程序发出请求(Python 使用 Flask 和 flask-socketio)。从后端的这条路线,应该对 socketio 客户端独立应用程序进行发射。这工作正常,但是当客户端应用程序直接发回消息时,我想检索此消息并将其发送回我的路由到 Web 应用程序。我通过回调从客户端返回的消息将是异步的,那么如何以最简单的方式实现这一点呢?每次我从客户端获取消息时,路由已经将没有消息的回复发回给网络应用程序。

我完全理解这个流程通常是不正常的,但是是否可以不将此消息保存到数据库中,而是将其存储在后端某个位置并将其发送回网络应用程序来实现?

您可以使用 Python 标准库中的 Event 对象。

from threading import Event
my_event = Event()

在你的 Flask 路线中:

my_event.wait()  # block until the event is signaled
return socketio_response

在您的 Socket.IO 回调函数中:

socketio_response = data
my_event.set()  # alert the route that a result is now available