Я начинаю с веб-сокетов, и мне нужно кодировать следующее поведение:
Когда клиент подключается, получает данные json от сервера и каждые 10 секунд получает одно и то же сообщение.
Также в это времяполучать входящие данные и отправлять соответствующий ответ.
Этот код отправляет сообщение каждые 3 секунды:
https://websockets.readthedocs.io/en/stable/intro.html#browser-based-example
async def time(websocket, path):
while True:
now = datetime.datetime.utcnow().isoformat() + "Z"
await websocket.send(now)
await asyncio.sleep(random.random() * 3)
start_server = websockets.serve(time, "127.0.0.1", 5678)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
Мой код принимает данные и отправляетответ.
async def processor(websocket, path):
while True:
try:
message = await websocket.recv()
except websockets.ConnectionClosed:
print("Terminated")
break
data = json.loads(message)
if data["action"] == "getEndStops":
print("getEndStops")
await websocket.send(json.dumps(jsonEndStops))
elif data["action"] == "getGPS":
print("getGPS")
await websocket.send(json.dumps(jsonGPS))
start_server = websockets.serve(processor, "127.0.0.1", 5678)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
Кто-нибудь знает, как можно смешивать оба ??