如何在Python中从另一个线程广播到socketio?

时间:2016-02-17 18:35:02

标签: python multithreading flask flask-socketio

flask_socketio个应用程序正在作为服务器运行。在由app管理的列表中,有几个实例继承threading.Threads,每个实例都运行一个mainloop。有一段时间,我想发信号通知flask-socketio服务器向某个房间发送广播。我怎么能这样做?

由于flask_socketio正在主循环中运行,我无法弄清楚如何做到这一点,但我无法访问此主循环。有没有办法让烧瓶主循环从Queue读取?

1 个答案:

答案 0 :(得分:0)

您只需要访问SocketIO实例即可。你的应用程序的某个地方有:

socketio = SocketIO(app)

在要发出的线程中,只需导入此对象并调用emit方法:

from app import socketio
# ...
def emit_to_room(event, data, room):
    socketio.emit(event, data, room=room)

希望这有帮助!