Bastax13
@Bastax13

Как асинхронно отсылать сообщения WebSocket?

У меня есть список вебсокет-клиентов.
Сейчас для отправки сообщения всем клиентам я использую перебор этого списка:
for client in ws_clients:
    client.write_message("hello")

Но даже при не очень большом количестве клиентов появляется существенная задержка между получением сообщения первым и последним клиентом в списке.

Можно как-нибудь отправлять сообщения асинхронно (одновременно каждому клиенту)?
  • Вопрос задан
  • 155 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Попробуйте так:
async def on_message(self, message):
    for client in ws_clients:
        asyncio.ensure_future(client.write_message(message))
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
LazyTalent
@LazyTalent
Data Engineer, Freelancer
from multiprocessing.dummy import Pool


def sm(client):
    client.send_message('hello')


p = Pool(100)
_ = p.map(sm, ws_clients)
p.close()
p.join()
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Protoplan Краснодар
от 80 000 до 150 000 руб.
YLab Тольятти
от 90 000 до 150 000 руб.
17 июл. 2019, в 19:35
100000 руб./за проект
17 июл. 2019, в 19:28
800 руб./за проект