Как правильно отправить сообщения на клиент через вебсокет?

  • 28 августа 2023 г. 13:06
Ответы на вопрос 1
Для отправки сообщений на клиент через вебсокет, вам потребуется использовать функцию `send()` в объекте WebSocket. Вот пример:

```python
import asyncio
import websockets

async def handle_client(websocket, path):
    while True:
        # Получение запроса от клиента
        message = await websocket.recv()
        print(f"Получено сообщение от клиента: {message}")
        
        # Отправка сообщения каждую секунду
        count = 0
        while count < 10:
            response = f"Сообщение {count}"
            await websocket.send(response)
            print(f"Отправлено сообщение на клиент: {response}")
            await asyncio.sleep(1)
            count += 1

start_server = websockets.serve(handle_client, "localhost", 8080)

asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
```

В коде выше, мы определяем асинхронную функцию `handle_client`, которая будет обрабатывать каждого клиента. Внутри этой функции, мы используем цикл `while True`, чтобы продолжать получать сообщения от клиента и отправлять сообщения каждую секунду.

В основной части кода, мы создаем WebSocket-сервер с помощью `websockets.serve` и запускаем его с помощью `asyncio.get_event_loop().run_forever()`.

Помимо этого, вы можете использовать различные методы и события `websockets` для обработки других аспектов вебсокет-соединения, таких как открытие, закрытие или обработка ошибок.
Похожие вопросы