WebSocket связь позволяет отправлять и получать сообщения в реальном времени между сервером и клиентами. Вот подробное руководство о том, как добиться этого при Python использовании websockets
библиотеки.
Шаг 1: Установите WebSocket библиотеку
Сначала установите websockets
библиотеку, выполнив следующую команду в папке terminal:
pip install websockets
Шаг 2: Отправка и получение сообщений на сервере
Ниже приведен пример отправки и получения сообщений на WebSocket сервере:
import asyncio
import websockets
# WebSocket connection handling function
async def handle_connection(websocket, path):
async for message in websocket:
await websocket.send(f"Server received: {message}")
# Initialize the WebSocket server
start_server = websockets.serve(handle_connection, "localhost", 8765)
# Run the server within the event loop
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
Во фрагменте кода:
-
async def handle_connection(websocket, path):
: эта функция обрабатывает WebSocket соединения. Когда клиент отправляет сообщение, эта функция слушает и отправляет ответ. -
async for message in websocket:
: этот цикл прослушивает сообщения от клиента через соединение WebSocket. -
await websocket.send(f"Server received: {message}")
: Эта функция отправляет ответ от сервера обратно клиенту через соединение WebSocket.
Шаг 3: Отправка и получение сообщений от клиента
Вот пример того, как клиент отправляет и получает сообщения от WebSocket сервера:
import asyncio
import websockets
async def send_and_receive():
async with websockets.connect("ws://localhost:8765") as websocket:
await websocket.send("Hello, WebSocket!")
response = await websocket.recv()
print("Received:", response)
asyncio.get_event_loop().run_until_complete(send_and_receive())
Во фрагменте кода:
-
async with websockets.connect("ws://localhost:8765") as websocket:
: так клиент подключается к WebSocket серверу. Клиент устанавливает соединение сlocalhost
адресом и портом8765
. -
await websocket.send("Hello, WebSocket!")
: клиент отправляет сообщение на сервер.Hello, WebSocket!
-
response = await websocket.recv()
: клиент ожидает получения ответа от сервера через соединение WebSocket.
Заключение
Следуя шагам и понимая каждую часть примера, вы успешно научились отправлять и получать сообщения через WebSocket in Python. Это открывает возможности для создания приложений реального времени и непрерывного обмена данными между сервером и клиентами.