Назад к вопросам
Junior
71
questionbank
Как открыть соединение WebSocket?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Для открытия WebSocket-соединения на стороне клиента в Python можно использовать библиотеку websockets.
import asyncio
import websockets
async def connect_websocket():
uri = "ws://localhost:8765" # Адрес WebSocket-сервера
async with websockets.connect(uri) as websocket:
print("WebSocket connection opened.")
# Здесь можно отправлять и получать сообщения
if __name__ == "__main__":
asyncio.run(connect_websocket())
На стороне сервера, также с использованием websockets:
import asyncio
import websockets
async def handle_client(websocket, path):
print(f"Client connected from {websocket.remote_address}")
# Здесь можно обрабатывать сообщения от клиента
async def start_server():
start_server = websockets.serve(handle_client, "localhost", 8765)
print("WebSocket server started on ws://localhost:8765")
await start_server.serve_forever()
if __name__ == "__main__":
asyncio.run(start_server())
Основные шаги:
- Импорт библиотеки:
import websockets. - Определение адреса: Указывается URI WebSocket-сервера (
ws://...илиwss://...). - Создание соединения: Используется
websockets.connect()на клиенте илиwebsockets.serve()на сервере. Они являются асинхронными функциями и обычно используются сasync withдля автоматического закрытия соединения. - Обработка событий: После установки соединения, можно отправлять и получать сообщения асинхронно.
Альтернативы:
websocket-client: Клиентская библиотека, не основанная наasyncio.autobahn|python: Более старая библиотека, поддерживающая как клиентскую, так и серверную часть.
Выбор библиотеки зависит от конкретных требований проекта (асинхронность, функциональность, производительность). Для современных асинхронных приложений рекомендован websockets.