一个WebSocket连接上的Python生产者和使用者

时间:2018-10-21 03:45:32

标签: python websocket python-multithreading

我目前正在运行两个单独的python程序,在不同的websocket上侦听。一个产生并发送相机数据,另一个接收JSON消息。由于websocket可以同时接收和发送,因此我只想使用一种连接。

是否可以共享websocket连接,但是使用不同的线程或进程?请注意,生产者占用大量CPU,因此无法共享协同例程。

我尝试生成一个线程,但是线程似乎不允许异步等待

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()

0 个答案:

没有答案