diff --git a/pybit/_websocket_stream.py b/pybit/_websocket_stream.py index 58c4204..ef0f66f 100644 --- a/pybit/_websocket_stream.py +++ b/pybit/_websocket_stream.py @@ -29,7 +29,7 @@ class _WebSocketManager: def __init__(self, callback_function, ws_name, test, domain="", api_key=None, api_secret=None, ping_interval=20, ping_timeout=10, retries=10, - restart_on_error=True, trace_logging=False): + restart_on_error=True, trace_logging=False, ssl_options=None): self.test = test self.domain = domain @@ -57,6 +57,9 @@ def __init__(self, callback_function, ws_name, self.ping_interval = ping_interval self.ping_timeout = ping_timeout self.retries = retries + + # Set SSL options + self.ssl_options = ssl_options # Other optional data handling settings. self.handle_error = restart_on_error @@ -140,10 +143,17 @@ def resubscribe_to_topics(): ) # Setup the thread running WebSocketApp. - self.wst = threading.Thread(target=lambda: self.ws.run_forever( - ping_interval=self.ping_interval, - ping_timeout=self.ping_timeout - )) + if self.ssl_options is None: + self.wst = threading.Thread(target=lambda: self.ws.run_forever( + ping_interval=self.ping_interval, + ping_timeout=self.ping_timeout + )) + else: + self.wst = threading.Thread(target=lambda: self.ws.run_forever( + sslopt=self.ssl_options, + ping_interval=self.ping_interval, + ping_timeout=self.ping_timeout + )) # Configure as daemon; start. self.wst.daemon = True