Bastax13
@Bastax13

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

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

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

Можно как-нибудь отправлять сообщения асинхронно (одновременно каждому клиенту)?
  • Вопрос задан
  • 174 просмотра
Решения вопроса 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()
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы