Производитель и потребитель Python на одном веб-сокете - PullRequest
0 голосов
/ 21 октября 2018

В настоящее время я работаю с двумя отдельными программами на Python, слушая разные веб-сокеты.Один создает и отправляет данные с камеры, другой получает сообщения JSON.Поскольку веб-сокеты могут принимать и передавать одновременно, я хотел бы использовать только одно соединение.

Можно ли совместно использовать соединение веб-сокета, но использовать разные потоки или процессы?Обратите внимание, что производитель интенсивно использует процессор, поэтому не может совместно использовать подпрограмму.

Я пытался порождать поток, но потоки, похоже, не позволяют async await's

async def json_receiver(websocket):
    while True:
        messageJson = await websocket.recv()
        message = json.loads(messageJson)
        # do something with the message

async def server(websocket, path):
    t = threading.Thread(target=json_receiver, args=(websocket,))
    t.start()
    # create next thread..

asyncio.get_event_loop().run_until_complete(websockets.serve(server, '', 8000))
asyncio.get_event_loop().run_forever()
...