Создание сервера на Python с поддержкой WebSocket: Руководство по разработке - страница 7

Шрифт
Интервал



В предыдущих главах мы познакомились с основными концепциями сетевого программирования и протокола WebSocket. Теперь пришло время создать наш первый сервер поддержкой Для этого будем использовать библиотеку `asyncio`, которая является частью стандартной библиотеки Python позволяет создавать асинхронные приложения.


`asyncio` предоставляет простой и эффективный способ создания сетевых серверов, включая поддержку WebSocket. В этой главе мы создадим сервер, который будет принимать соединения отправлять сообщения клиентам.


Установка `asyncio`


Если вы используете Python 3.7 или более позднюю версию, `asyncio` уже включена в стандартную библиотеку. В противном случае, вам необходимо установить ее отдельно. Для этого можно использовать pip:


```


pip install asyncio


```


Создание простого сервера


Давайте создадим простой сервер, который будет принимать соединения и отправлять сообщения клиентам. Для этого мы будем использовать класс `asyncio.start_server`, создает сервер запускает его в отдельном потоке.


```python


import asyncio


async def handle_client(reader, writer):


Получаем адрес клиента


address = writer.get_extra_info('peername')


print(f"Новое соединение от {address}")


Отправляем сообщение клиенту


writer.write(b"Привет, клиент!")


await writer.drain()


Закрываем соединение


writer.close()


async def main():


Создаем сервер


server = await asyncio.start_server(handle_client, '127.0.0.1', 8080)


Запускаем сервер


async with server:


print("Сервер запущен на порту 8080")


await server.serve_forever()


Запускаем сервер


asyncio.run(main())


```


В этом примере мы создаем сервер, который слушает на порту 8080 и принимает соединения от клиентов. Когда клиент подключается, сервер отправляет ему сообщение "Привет, клиент!" закрывает соединение.


Запуск сервера


Чтобы запустить сервер, просто сохраните этот код в файле (например, `server.py`) и запустите его с помощью Python:


```


python server.py


```


Сервер запустится и начнет слушать на порту 8080. Вы можете проверить его работу, подключившись к нему с помощью клиента (например, браузера или утилиты `telnet`).