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