WebSocket — это протокол обмена данными между клиентом и сервером в режиме реального времени. Он широко используется для создания интерактивных веб-приложений, таких как чаты, онлайн-игры и других сервисов, где требуется быстрый обмен информацией. В данной статье мы рассмотрим основы работы с WebSocket в Python.
Освойте Python на курсе от Skypro. Вас ждут 400 часов обучения и практики (достаточно десяти часов в неделю), подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.
Библиотека websocket
Для работы с WebSocket в Python существует несколько библиотек, одной из популярных является websocket. Чтобы установить эту библиотеку, выполните следующую команду:
pip install websocket-client
Создание WebSocket-клиента
Для начала создадим простой WebSocket-клиент, который будет подключаться к серверу и отправлять ему сообщения. Воспользуемся библиотекой websocket для этого:
import websocket
def on_open(ws):
print("Connection opened")
ws.send("Hello, WebSocket!")
def on_message(ws, message):
print(f"Received message: {message}")
def on_close(ws):
print("Connection closed")
ws = websocket.WebSocketApp("ws://example.com/ws",
on_open=on_open,
on_message=on_message,
on_close=on_close)
ws.run_forever()
В примере выше мы создаем объект WebSocketApp, указываем адрес сервера и функции обратного вызова для событий открытия соединения, получения сообщений и закрытия соединения. Затем мы вызываем метод run_forever() для запуска главного цикла обработки сообщений.
Создание WebSocket-сервера
Для создания сервера мы будем использовать библиотеку websockets. Установите ее с помощью следующей команды:
pip install websockets
Теперь создадим простой сервер, который будет слушать подключения и обрабатывать сообщения:
import asyncio
import websockets
async def handler(websocket, path):
print("Client connected")
message = await websocket.recv()
print(f"Received message: {message}")
await websocket.send(f"Hello, {message}!")
start_server = websockets.serve(handler, "localhost", 8765)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
В этом примере мы создаем асинхронную функцию handler, которая будет обрабатывать подключения клиентов и сообщения. Затем мы запускаем сервер на порту 8765 с использованием функции serve из библиотеки websockets. Главный цикл обработки событий запускается с помощью функций run_until_complete и run_forever из библиотеки asyncio.
На курсе Skypro «Python-разработчик» освоите основные инструменты программирования, получите опыт на реальных проектах и сможете стартовать в профессии уверенным новичком. Преподаватели — практикующие программисты с большим опытом, а в центре карьеры помогут составить цепляющее резюме и подготовиться к собеседованию.
Теперь вы знакомы с основами работы с WebSocket в Python. Это позволит вам создавать интерактивные веб-приложения и сервисы с быстрым обменом информацией между клиентом и сервером. Не забывайте практиковаться и изучать дополнительные материалы для углубления своих знаний!
Перейти в телеграм, чтобы получить результаты теста





Забрать
Добавить комментарий