Я использую Python Websockets: https://websockets.readthedocs.io/
У них есть простой пример клиент / сервер, где сервер возвращает ответ клиента один раз. Код выглядит так:
Клиентская сторона:
# WS client example
import asyncio
import websockets
async def hello():
async with websockets.connect(
'ws://localhost:8765') as websocket:
name = input("What's your name? ")
await websocket.send(name)
print(f"> {name}")
greeting = await websocket.recv()
print(f"< {greeting}")
asyncio.get_event_loop().run_until_complete(hello())
Серверная сторона:
# WS server example
import asyncio
import websockets
async def hello(websocket, path):
name = await websocket.recv()
print(f"< {name}")
greeting = f"Hello {name}!"
await websocket.send(greeting)
print(f"> {greeting}")
start_server = websockets.serve(hello, 'localhost', 8765)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
Я хочу настроить только на стороне сервера, чтобы при подключении к сокету он делал следующее:
- Отправить сообщение с подтверждением клиенту. например
Hello Client! Please wait for your data.
- Поддерживать связь.
- Обработка некоторых данных, которая занимает некоторое время.
- После того, как данные завершили обработку, уведомите клиента о существующем соединении через веб-сокет. например
Your data is here!
В документации по python websockets отсутствует пример кода, который делает это.