#flask-socketio
Вопрос:
Отправленное сообщение с моего веб-сервера python flask (сервер flask socketio) не поступает на клиент javascript socketio.
В контексте socketio все работает нормально.
Я уже прочитал все темы здесь об этой проблеме… поэтому я включил обезьяну.патч, попробовал eventlet в качестве async_mode и добавил еще несколько подсказок, так что теперь я получил следующую кодовую базу:
app = Flask(__name__) app.secret_key = "zISMDCwvfJY2TXHMKHrB" sio = SocketIO(app, async_mode='eventlet') eventlet.monkey_patch() @app.route('/index') def index(): someotherfunction() return render_template('index.html') @sio.event def my_event(message): print(message) @sio.event def hello(message): sio.emit('hello', {'data': 'got it!'}) print(message) def someotherfunction(): with app.app_context(): sio.emit('hello', {'data': 'got it123123!'}, namespace='/') if __name__ == "__main__": sio.run(app, host="localhost", port="8080", debug=True)
и здесь сегмент клиентской части socketio:
lt;script type="text/javascript" charset="utf-8"gt; var socket = io(); socket.on('connect', function() { socket.emit('my_event', {data: 'I'm connected!'}); }); socket.on('hello', function(data) { console.log(data); }); lt;/scriptgt;
Таким образом, функция «привет» успешно выдаст данные после запроса, но какая-либо другая функция() не выдаст никаких данных на сторону клиента.