Python 立即重新连接websocket
我有一个WebSocket连接,它使用Python 立即重新连接websocket,python,python-3.x,websocket,Python,Python 3.x,Websocket,我有一个WebSocket连接,它使用永远运行()参数 但是,随着时间的推移,它会断开连接,我不知道如何以可行的方式使它重新连接,有人能帮我吗 我发现这个代码: def _connect(self): self.state = "connecting" self.socket = websocket.WebSocketApp( self.url, on_open=self._on_open,
永远运行()
参数
但是,随着时间的推移,它会断开连接,我不知道如何以可行的方式使它重新连接,有人能帮我吗
我发现这个代码:
def _connect(self):
self.state = "connecting"
self.socket = websocket.WebSocketApp(
self.url,
on_open=self._on_open,
on_message=self._on_message,
on_error=self._on_error,
on_close=self._on_close
)
self.socket.run_forever(**self.socket_kwargs)
while self.needs_reconnect and not self.disconnect_called:
self.logger.info("Attempting to connect again in %s seconds."
% self.reconnect_interval)
self.state = "unavailable"
time.sleep(self.reconnect_interval)
# We need to set this flag since closing the socket will set it to
# false
self.socket.keep_running = True
self.socket.run_forever(**self.socket_kwargs)
但我不理解它是如何工作的,首先是因为我不理解“self”的概念,其次是因为在我运行命令run\u everle()
之后,我的代码被卡住了。它不运行任何后
在我的示例中(使用我需要的URL),我尝试这样做:
def on_open(socket):
socket.send(json.dumps({"ticks": "R_10", "subscribe": 1}))
def _connect():
socket = websocket.WebSocketApp(
"wss://ws.binaryws.com/websockets/v3?",
on_open = on_open
)
socket.run_forever()
print("runned")
while self.needs_reconnect and not self.disconnect_called:
socket.keep_running = True
socket.run_forever()
但它甚至没有通过socket.run_forever(),如前所述
我也试过:
def on_error(ws, error):
print(error)
ws.close()
def on_close(ws):
open_websocket.terminate()
run_websocket.terminate()
open_websocket.start()
def on_open(ws):
def run(*args):
ws.send(json.dumps({"ticks": "R_10", "subscribe": 1}))
run_websocket = threading.Thread(target=run, args=())
run_websocket.start()
def open_ws():
ws = websocket.WebSocketApp("wss://ws.binaryws.com/websockets/v3?",
on_message = on_message,
on_error = on_error,
on_close = on_close)
ws.on_open = on_open
ws.run_forever()
open_websocket = threading.Thread(target=open_ws, args=())
open_websocket.start()
print("runned")
通过这种方式,会出现打印
,但随着时间的推移,连接会自行关闭
我试着这样放置ping\u interval=10
:
def abrir_ws():
ws = websocket.WebSocketApp("wss://ws.binaryws.com/websockets/v3?",
on_message = on_message,
on_error = on_error,
on_close = on_close)
ws.on_open = on_open
ws.run_forever(ping_interval=10)
但它也不起作用
有人能帮我吗?有人能帮我吗?我还没有想出解决办法