Flask Socketio не обновляет данные

Я работаю с Flask Socketio. Мой код прямо сейчас регистрирует консоль каждый раз, когда пользователь открывает страницу. Однако, когда я открываю страницу в новой вкладке/окне, консоль исходного пользователя не обновляется. Ниже приведен код, посмотрите на него

  let socket = io.connect("http://127.0.0.1:5000/")
socket.on("connect",() => {
    socket.emit("my custom event",{text:"I have joined"})
  })
  socket.on("my response",function(msg) {
    console.log(msg)
  })

А вот код python для фляги

from flask import Flask, render_template, request
import requests
from flask_socketio import SocketIO, emit, send

app = Flask(__name__)

app.config["SECRET_KEY"] = "hope"
socketio = SocketIO(app)


@app.route('/')
def hello_world():
    return render_template("index.html")


@app.route('/1')
def random_route():
    return render_template("index2.html")


@socketio.on('message')
def message(data):
    print(data)


@socketio.on('my custom event')
def handle_custom_event(data):
    emit("my response", data)


if __name__ == "__main__":
    socketio.run(app, debug=True)

person akul chhillar    schedule 24.10.2020    source источник


Ответы (1)


По умолчанию функция emit адресует событие только отправителю. Если вы хотите обратиться ко всем вашим подключенным клиентам, вы должны указать это с помощью опции broadcast:

@socketio.on('my custom event')
def handle_custom_event(data):
    emit("my response", data, broadcast=True)
person Miguel    schedule 24.10.2020