@@ -59,6 +59,21 @@ def __init__(self, api) -> None:
5959 self .esperar_segundo_mensaje = False
6060 self .recibido_updateClosedDeals = False
6161
62+ async def reconnect (self ):
63+ regs = self .region .get_regions ()
64+ for i in regs :
65+ print (f"Reconnecting to { i } ..." )
66+ async with websockets .connect (i , extra_headers = {"Origin" : "https://m.pocketoption.com" }) as ws :
67+
68+ print ("Conectado a: " , i )
69+ self .websocket = ws
70+ self .url = i
71+ on_message_task = asyncio .create_task (self .websocket_listener (ws ))
72+ sender_task = asyncio .create_task (send_pin (ws ))
73+ message_task = asyncio .create_task (self .send_message (self .message ))
74+ await asyncio .gather (on_message_task , sender_task , message_task )
75+
76+
6277 async def websocket_listener (self , ws ):
6378 async for message in ws :
6479 await self .on_message (message )
@@ -139,6 +154,15 @@ async def on_message(self, message): # pylint: disable=unused-argument
139154 global_value .balance = message ["balance" ]
140155 global_value .balance_type = message ["isDemo" ]
141156
157+ data = {
158+ "balance_id" : message ["uid" ],
159+ "balance" : message ["balance" ],
160+ "balance_type" : message ["isDemo" ]
161+ }
162+
163+ with open ("balance.json" , "w" ) as f :
164+ json .dump (data , f )
165+
142166 elif "requestId" in message and message ["requestId" ] == 'buy' :
143167 global_value .order_data = message
144168
@@ -220,11 +244,17 @@ async def on_error(self, error): # pylint: disable=unused-argument
220244 """Method to process websocket errors."""
221245 logger = logging .getLogger (__name__ )
222246 logger .error (error )
223- global_value .websocket_error_reason = str (error )
224- global_value .check_websocket_if_error = True
247+ try :
248+ self .reconnect ()
249+ except :
250+ global_value .websocket_error_reason = str (error )
251+ global_value .check_websocket_if_error = True
225252
226253 async def on_close (self , error ): # pylint: disable=unused-argument
227254 """Method to process websocket close."""
228255 logger = logging .getLogger (__name__ )
229256 logger .debug ("Websocket connection closed." )
230- global_value .websocket_is_connected = False
257+ try :
258+ self .reconnect ()
259+ except :
260+ global_value .websocket_is_connected = False
0 commit comments