Python websockets, отправлять сообщения через некоторое время, а также получать от клиента - PullRequest
0 голосов
/ 06 ноября 2019

Я начинаю с веб-сокетов, и мне нужно кодировать следующее поведение:

Когда клиент подключается, получает данные 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() 

Кто-нибудь знает, как можно смешивать оба ??

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...