Сервер не вещает клиентам - PullRequest
0 голосов
/ 09 июля 2019

Я пытаюсь использовать код, предоставленный в ответе на Широковещательная передача WebSocket всем клиентам, использующим Python , для широковещательной рассылки сообщений всем подключенным клиентам, но кажется, что код даже не входит в цикл for.Я не получаю никаких ошибок, но по локальной сети ничего не происходит, даже если есть подключенные клиенты.

        print()
        print("1 -", ReturnStatus)
        if ReturnStatus:
            print("2 - Sending Data", MessageText)
            for client in self.server.connections.itervalues():
                print("3 -", client, MessageText, self.address)
                client.sendMessage(MessageText)

стандартный вывод с сервера:

1 - True
2 - Sending Data Line, 4, Heat

1 - True
2 - Sending Data Control,  3

1 - True
2 - Sending Data Control,  2

1 - True
2 - Sending Data Control,  3

1 - True
2 - Sending Data Line, 3, Remote

1 - True
2 - Sending Data Line, 3, Outside

Обратите внимание на отсутствие печатизначения внутри цикла for.

Дополнительное примечание: я вставляю блок try со следующими результатами:

            try:
                for client in clients:
                    print(client)
            except Exception as e:
                print("Exception {}".format(e))

с результатом:

Exception name 'clients' is not defined

, а затем:

            try:
                for client in self.server.connections.itervalues():
                    client.sendMessage(MessageText)

с результатом:

Exception 'dict' object has no attribute 'itervalues'

Важно отметить, что версия Python - 3.5.3.

1 Ответ

0 голосов
/ 10 июля 2019

Я нашел ответ.Очевидно, Python3 убрал свои значения.Вот рабочий код:

            for client in self.server.connections.values():
                client.send_message(MessageText)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...