Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 立即重新连接websocket_Python_Python 3.x_Websocket - Fatal编程技术网

Python 立即重新连接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,

我有一个WebSocket连接,它使用
永远运行()
参数

但是,随着时间的推移,它会断开连接,我不知道如何以可行的方式使它重新连接,有人能帮我吗

我发现这个代码:

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)
但它也不起作用


有人能帮我吗?

有人能帮我吗?我还没有想出解决办法