Колбы для веб-розеток: излучение в определенные розетки - PullRequest
0 голосов
/ 29 июня 2018

Я пытаюсь отследить количество подключений через веб-сокет и отправить конкретную информацию каждому. Вот мой метод с использованием Flask websocket-io, который я снял с ответа на этом сайте.

class Socket:
    def __init__(self, sid):
        self.sid = sid
        self.connected = True

    def emit(self, event, data):
        socketio.emit(event, data, room=self.sid)

sockets = {}

@socketio.on('connect')
def foo():
    sid = str(request.sid)
    sockets[sid] = Socket(sid)
    sockets[sid].emit('connected', {'myID':sid})
    info = getInfo(sid)
    sockets[sid].emit('info', {'data':info})  

Все это прекрасно работает, как и ожидалось. Проблема возникает тогда, когда я пытаюсь перебрать и обновить всех:

def refreshInfo():
    for sid in sockets:
        info = getInfo(sid)
        sockets[sid].emit('info', {'data':info})  

Метод Socket получает тот же sid и ту же информацию, что и при первом вызове. Но клиент ничего не получает. Что дает? Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...