在python中建立和重新连接websocket的更好方法是什么?

在python中建立和重新连接websocket的更好方法是什么?,python,websocket,python-multithreading,Python,Websocket,Python Multithreading,通过下面的代码,我可以通过线程打开到不同WebSocket的连接。此连接将保持稳定,直到套接字服务器启动新的连接。这可能超过一周。从那时起,没有新的数据进入。因此,重新连接似乎不起作用 现在我在网上搜索了另一种语法,想知道在你看来什么是最好或更好的方法 这里是实际运行的代码,运行了一段时间后就不再运行了。我在日志中看不到任何错误代码 ws_connections = [] # websocket-client based connection due to issue in receiving

通过下面的代码,我可以通过线程打开到不同WebSocket的连接。此连接将保持稳定,直到套接字服务器启动新的连接。这可能超过一周。从那时起,没有新的数据进入。因此,重新连接似乎不起作用

现在我在网上搜索了另一种语法,想知道在你看来什么是最好或更好的方法

这里是实际运行的代码,运行了一段时间后就不再运行了。我在日志中看不到任何错误代码

ws_connections = []
# websocket-client based connection due to issue in receiving data from some urls
func_message = partial(WSClientProtocol.on_message, factory)
# websocket.enableTrace(True)
ws = websocket.WebSocketApp(
        url,
        on_message=func_message,
        on_error=WSClientProtocol.on_error,
        on_close=WSClientProtocol.on_close,
    )
    ws.on_open = WSClientProtocol.on_open
    ws_connections.append(ws)
    wst = threading.Thread(target=ws.run_forever, kwargs={'ping_interval': 5, 'ping_timeout' : 2})
    wst.daemon = True
    wst.start()
下面是我在网络研究中看到的代码,其中有一个问题,您认为什么更好

wst=threading.Thread(target=ws.run\u forever(ping\u间隔=70,ping\u超时=10))
wst.daemon=True
wst.start()
知道我的代码为什么停止捕获数据了吗?

解决方案是:

服务器端的代理没有关闭连接,但没有再发送任何数据,因此,连接似乎已关闭,但仍然存在

代码中的解决方案是我们开发了一个ping/pong,我们说,如果ping的响应时间超过一段时间,然后重新连接。

1)一旦服务器由于服务器重启/维护等原因断开连接,线程WebSocket将关闭,并且在服务器重启后也不会有新数据到达。2) 关闭连接后没有日志条目。我们怎样才能知道关门的原因呢?3) 没有自动重新连接到服务器。我必须手动重新启动引擎。如果没有连接,我们如何尝试重新连接?