如何在另一个线程中运行异步run_forever?

时间:2020-05-05 08:00:20

标签: python websocket python-asyncio

我正在尝试使用Websocket库在另一个线程中运行Websocket服务器。

我完成此操作的方式似乎不理想。

我需要在另一个线程中使用websocket服务器,因为我需要在下面的*255/360函数中进行工作,以便asyncio调用不会阻塞我的主循环。

目前,我有:

main

是否有一种避免将当前事件循环作为参数传递给另一个线程的方法,或者这是一种可接受的方法吗?

似乎,使用def serve_websocket(server, event_loop): print(f'Websocket server listening on port {WEBSOCKET_PORT}') event_loop.run_until_complete(server) event_loop.run_forever() def main(): event_loop = asyncio.get_event_loop() ws_server = websockets.serve(msg_handler.ws_callback, LOCALHOST, WEBSOCKET_PORT) try: threading.Thread(target=serve_websocket, args=(ws_server, event_loop), daemon=True).start() while True: # Do my work here, passing data from websocket via queues except: print('Exit called') 这样的名称,我应该能够让websocket服务器监听而不会阻塞。

0 个答案:

没有答案