【发布时间】:2018-02-16 01:02:51
【问题描述】:
我在 Ubuntu 上使用 Python websockets 4.0.1。我想运行 2 个 websocket 服务器。我能够通过为每个线程创建 2 个线程和独立的事件循环来完成“某种工作”。通过“某种工作”,我的意思是两个 websocket 都工作并且响应大约 30 秒,然后其中一个停止。我必须重新启动该过程才能让它们再次工作。如果我只运行这两个线程中的一个或另一个,则单个 websocket 将永远工作。
我做错了什么,如何让 2 个 websocket 与 asyncio 一起工作?谢谢。
# Start VL WebSocket Task
class vlWebSocketTask (threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
def run(self):
# Main while loops
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
while True:
try:
print("Starting VL WebSocket Server...")
startVLServer = websockets.serve(vlWebsocketServer, '192.168.1.3', 8777)
asyncio.get_event_loop().run_until_complete(startVLServer)
asyncio.get_event_loop().run_forever()
except Exception as ex:
print(ex)
time.sleep(5)
# Start IR WebSocket Task
class irWebSocketTask (threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
def run(self):
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
while True:
try:
print("Starting IR WebSocket Server...")
startIRServer = websockets.serve(irWebsocketServer, '192.168.1.3', 8555)
asyncio.get_event_loop().run_until_complete(startIRServer)
asyncio.get_event_loop().run_forever()
except Exception as ex:
print(ex)
time.sleep(5)
# Initialize VL WebSocket Task
#VLWebSocketTask = vlWebSocketTask()
#VLWebSocketTask.start()
# Initialize IR WebSocket Task
IRWebSocketTask = irWebSocketTask()
IRWebSocketTask.start()
【问题讨论】:
标签: python linux python-3.x websocket python-asyncio