【发布时间】:2020-05-15 22:21:22
【问题描述】:
我正在使用工作正常的 Flask-SocketIO 库,但我需要向 socket.io 装饰器的外部发送带有 emit 的通知,这真的很痛苦。查看解决方案,很多人使用rabbitmq或redis,但我不知道如何使用它们。
这是我的代码:
from flask import Flask, render_template
from flaskwebgui import FlaskUI
from flask_socketio import SocketIO, emit
app = Flask(__name__)
async_mode = None
app.config['SECRET_KEY'] = 'hello'
socketio = SocketIO(app, async_mode=async_mode, message_queue='amqp:///socketio')
def run_sock():
socketio.run(app, debug=True)
ui = FlaskUI(app, fullscreen=True, server=run_sock,)
@app.route("/")
def index():
return render_template('index.html')
@socketio.on('test', namespace='/test')
def test():
print("test")
if __name__ == "__main__":
ui.run()
io = SocketIO(message_queue='amqp:///socketio')
io.emit('test_emit', {'data': 'toto'}, namespace='/test')
我的 JS 前端从来没有收到 test_emit 消息,我该怎么办?
【问题讨论】:
标签: python flask socket.io flask-socketio