2

flask_socketioアプリがサーバーとして実行されています。アプリによって管理されるリストには、 を継承するいくつかのインスタンスがありthreading.Threads、それぞれがメインループを実行しています。flask-socketioときどき、特定の部屋にブロードキャストを送信するようにサーバーに通知したいと思います。どうすればこれを行うことができますか?

flask_socketioメインループ自体で実行されているため、それを行う方法を理解できませんが、このメインループにアクセスできません。フラスコのメインループを a から読み取る方法はありQueueますか?

4

1 に答える 1

1

SocketIOこれにはインスタンスにアクセスするだけです。アプリのどこかに次のものがあります。

socketio = SocketIO(app)

エミットしたいスレッドで、このオブジェクトをインポートしてemitメソッドを呼び出すだけです。

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

お役に立てれば!

于 2016-02-18T15:24:07.423 に答える