Python websocket auto-reconnection after the connection closes
Hi, I was running my python program to test the stability to get data through RTO(via internet).(it's not complete yet, still in development)
And on last Saturday, the Websocket just closed without any error.
So, my question is how do I write the program so that it re-connects after disconnection automatically?
And isn't run_forever() suppose to do that for me? Thank you.
Best Answer
-
You can check the market_price_rdpgw_service_discovery.py example on GitHub which demonstrates how to reconnect to the server.
def _on_close(self, ws, close_status_code, close_msg):
""" Called when websocket is closed """
self.web_socket_open = False
self.logged_in = False
print("WebSocket Closed for " + self.session_name)
if not self.disconnected:
print("Reconnect to the endpoint for " + self.session_name + " after 3 seconds... ")
time.sleep(3)
self.connect()However, the example is for illustrative purposes only, as mentioned in the disclaimer.
ALL EXAMPLE CODE IS PROVIDED ON AN “AS IS” AND “AS AVAILABLE” BASIS FOR ILLUSTRATIVE PURPOSES ONLY. REFINITIV MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, AS TO THE OPERATION OF EXAMPLE CODE, OR THE INFORMATION, CONTENT OR MATERIALS USED IN CONNECTION WITH EXAMPLE CODE. YOU EXPRESSLY AGREE THAT YOUR USE OF EXAMPLE CODE IS AT YOUR SOLE RISK
0
Answers
-
Thank you for reaching out to us.
I assume that you are using the Python WebSocket Client library to establish a WebSocket connection to RTO.
You need to check if that Python WebSocket Client library can perform auto reconnection. Typically, I think that the Python WebSocket Client library may not support this. You need to check the document of that Python WebSocket Client library.
If the library doesn't suport reconnection, the application need to detect disconnections and has a logic to reconnect to RTO.
0 -
Jirapongse I'm running the websocket in one thread while doing something in another thread.
Do I just start a new websocket thread in the on_close function so that when it's closed it will reconnect.
But it's just one time? If it closes the second time it won't be able to auto reconnect.
And correct me if I'm wrong but I'm pretty sure I can't start the same thread twice once it's terminated unless I re-start the program.
But the whole point of this is automation. If I have to re-start the program manually it's missing the point. Thank you.
0 -
After running the program for a few days, i got the following:
The following is my attempt to start a new thread in the on_close function:
But the "Connection is alive" stop after 20 seconds:
How should I go about reconnecting after disconnection automatically? Thank you.
0 -
For your reference about the the "Connection is alive" stop after 20 seconds:
0
Categories
- All Categories
- 6 AHS
- 37 Alpha
- 161 App Studio
- 4 Block Chain
- 4 Bot Platform
- 16 Connected Risk APIs
- 47 Data Fusion
- 30 Data Model Discovery
- 608 Datastream
- 1.3K DSS
- 577 Eikon COM
- 4.9K Eikon Data APIs
- 7 Electronic Trading
- Generic FIX
- 7 Local Bank Node API
- Trading API
- 2.7K Elektron
- 1.3K EMA
- 236 ETA
- 519 WebSocket API
- 33 FX Venues
- 10 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 20 Messenger Bot
- 2 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 59 Open Calais
- 264 Open PermID
- 39 Entity Search
- 2 Org ID
- PAM
- PAM - Logging
- 8.4K Private Comments
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 20 RDMS
- 1.4K Refinitiv Data Platform
- 367 Refinitiv Data Platform Libraries
- 3 Refinitiv Due Diligence
- LSEG Due Diligence Portal API
- 3 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.1K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 10 World-Check Customer Risk Screener
- 990 World-Check One
- 44 World-Check One Zero Footprint
- 45 Side by Side Integration API
- Test Space
- 3 Thomson One Smart
- 1.2K TR Internal
- Global Hackathon 2015
- 2 Specialists Who Code
- 10 TR Knowledge Graph
- 150 Transactions
- 142 REDI API
- 1.7K TREP APIs
- 4 CAT
- 21 DACS Station
- 117 Open DACS
- 1.1K RFA
- 103 UPA
- 172 TREP Infrastructure
- 224 TRKD
- 886 TRTH
- 5 Velocity Analytics
- 5 Wealth Management Web Services
- 59 Workspace SDK
- 9 Element Framework
- 5 Grid
- 13 World-Check Data File
- Yield Book Analytics
- 46 中文论坛