Задать вопрос
Bastax13
@Bastax13

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

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

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

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

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

Похожие вопросы
от 200 000 до 300 000 ₽
Greenway Global Новосибирск
от 150 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
02 февр. 2025, в 00:55
2500 руб./за проект
02 февр. 2025, в 00:25
5000 руб./за проект
02 февр. 2025, в 00:18
1000 руб./за проект