WebSocket Python: основы, примеры и руководство
WebSocket - это протокол двусторонней связи между клиентом и сервером, который позволяет установить постоянное соединение и обмениваться данными в режиме реального времени.
В Python существует несколько библиотек, которые обеспечивают поддержку WebSocket, однако наиболее популярной и широко используемой является библиотека "websockets". Давайте рассмотрим примеры использования WebSocket в Python с помощью этой библиотеки.
Для начала установим библиотеку "websockets" с помощью pip:
pip install websockets
Клиент:
import asyncio
import websockets
async def hello():
uri = "ws://localhost:8765" # указываем адрес сервера WebSocket
async with websockets.connect(uri) as websocket:
name = input("Введите ваше имя: ")
await websocket.send(name) # отправляем имя на сервер
greeting = await websocket.recv() # получаем приветствие от сервера
print(greeting) # выводим полученное приветствие
asyncio.get_event_loop().run_until_complete(hello())
Сервер:
import asyncio
import websockets
async def server(websocket, path):
name = await websocket.recv() # получаем имя от клиента
greeting = f"Привет, {name}!"
await websocket.send(greeting) # отправляем приветствие клиенту
start_server = websockets.serve(server, "localhost", 8765) # запускаем сервер на localhost:8765
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
В данном примере клиент и сервер находятся на одной машине и взаимодействуют через WebSocket. Когда клиент запускается, ему предлагается ввести свое имя, после чего оно отправляется на сервер. Сервер получает имя от клиента и отправляет приветствие обратно. Клиент выводит полученное приветствие на экран.
Это простой пример использования WebSocket в Python с помощью библиотеки "websockets". Код клиента и сервера можно доработать для реализации различных функций, таких как передача файлов или обновления данных в режиме реального времени.
WebSocket - это мощный инструмент для создания интерактивных веб-приложений, позволяющих обмениваться данными между клиентом и сервером в реальном времени.