diff --git a/binance/websocket/binance_socket_manager.py b/binance/websocket/binance_socket_manager.py index 61567cf..42027e3 100644 --- a/binance/websocket/binance_socket_manager.py +++ b/binance/websocket/binance_socket_manager.py @@ -21,6 +21,7 @@ def __init__( on_error=None, on_ping=None, on_pong=None, + on_disconnected=None, logger=None, proxies: Optional[dict] = None, ): @@ -35,6 +36,7 @@ def __init__( self.on_ping = on_ping self.on_pong = on_pong self.on_error = on_error + self.on_disconnected = on_disconnected self.proxies = proxies self._proxy_params = parse_proxies(proxies) if proxies else {} @@ -69,9 +71,10 @@ def read_data(self): except WebSocketException as e: if isinstance(e, WebSocketConnectionClosedException): self.logger.error("Lost websocket connection") + self._callback(self.on_disconnected) else: self.logger.error("Websocket exception: {}".format(e)) - raise e + raise e except Exception as e: self.logger.error("Exception in read_data: {}".format(e)) raise e diff --git a/binance/websocket/cm_futures/websocket_client.py b/binance/websocket/cm_futures/websocket_client.py index 49a4251..83626f1 100644 --- a/binance/websocket/cm_futures/websocket_client.py +++ b/binance/websocket/cm_futures/websocket_client.py @@ -13,6 +13,7 @@ def __init__( on_error=None, on_ping=None, on_pong=None, + on_disconnected=None, is_combined=False, proxies: Optional[dict] = None, ): @@ -28,6 +29,7 @@ def __init__( on_error=on_error, on_ping=on_ping, on_pong=on_pong, + on_disconnected=on_disconnected, proxies=proxies, ) diff --git a/binance/websocket/um_futures/websocket_client.py b/binance/websocket/um_futures/websocket_client.py index ebe5c48..fd528da 100644 --- a/binance/websocket/um_futures/websocket_client.py +++ b/binance/websocket/um_futures/websocket_client.py @@ -13,6 +13,7 @@ def __init__( on_error=None, on_ping=None, on_pong=None, + on_disconnected=None, is_combined=False, proxies: Optional[dict] = None, ): @@ -28,6 +29,7 @@ def __init__( on_error=on_error, on_ping=on_ping, on_pong=on_pong, + on_disconnected=on_disconnected, proxies=proxies, ) diff --git a/binance/websocket/websocket_client.py b/binance/websocket/websocket_client.py index ce8e6f6..bb17d35 100644 --- a/binance/websocket/websocket_client.py +++ b/binance/websocket/websocket_client.py @@ -20,6 +20,7 @@ def __init__( on_error=None, on_ping=None, on_pong=None, + on_disconnected=None, logger=None, proxies: Optional[dict] = None, ): @@ -34,6 +35,7 @@ def __init__( on_error, on_ping, on_pong, + on_disconnected, logger, proxies, ) @@ -51,6 +53,7 @@ def _initialize_socket( on_error, on_ping, on_pong, + on_disconnected, logger, proxies, ): @@ -62,6 +65,7 @@ def _initialize_socket( on_error=on_error, on_ping=on_ping, on_pong=on_pong, + on_disconnected=on_disconnected, logger=logger, proxies=proxies, )