これは私のコードです:
class FirstNamespace(BaseNamespace):
def on_some_event(self, msg):
self.emit('ok '+msg)
@app.route('/socket.io/<path:remaining>') # socket.io endpoint
def socketio_withpath(remaining):
socketio_manage(request.environ,
{'/channel1': FirstNamespace}
return 'ok'
@app.route('/dosomething/', methods=['POST']) # simple http endpoint
def dosomething():
data = request.form
# ...
# some code that triggers self.emit from within FirstNamespace
# ...
return 'data processed'
フロントエンドからソケット メッセージを喜んで送信できます。それらは処理され、メソッドから応答を受け取りますon_some_event
。
問題は、最初に自分でメッセージを送信した場合にのみメッセージを受信できることです。
しかし、最初に話さずにメッセージを受信するにはどうすればよいでしょうか?
たとえば、誰かが POST を/dosomething/
エンドポイントに送信した場合、どのようemit
にクライアント Websocket をトリガーできますか?
--
私はこれを行うことができますflask-socketio
が、私の好みには魔法が多すぎます. これに対する下位レベルの実装はありますか?