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. Это позволит вам создавать интерактивные веб-приложения и сервисы с быстрым обменом информацией между клиентом и сервером. Не забывайте практиковаться и изучать дополнительные материалы для углубления своих знаний!
Добавить комментарий