may I ask if there is a python solution that does not use websockets, instead using the EMA libra...
...ries?, or do we need to use a custom java app
I cannot use the websocket api to connect to the ADS server using managed feed user . Can you advise the possible reason ? The below setup is available for OneTick RFA OMM Collector, which is used to collect data from a Refinitiv source using the RFA OMM API
onetick@ny2-laa-011.analytics> python3 market_price.py --hostname 10.253.4.4 --port 14002 --position 10.31.145.219 --user AM3_MFSA_US06060
Connecting to WebSocket ws://10.253.4.4:14002/WebSocket ...
failed CONNECT via proxy status: 403
WebSocket Closed
script link
https://github.com/Refinitiv/websocket-api/blob/master/Applications/Examples/python/market_price.py
We have advised that On Windows, there is no solution to use 14002 port because refinitiv-data Python library relies on the Websocket API protocol and therefore only manages websocket connection (default port 443).
For a RSSL connection (port 14002), the user will have to continue with EMA it it’s a question of performance (compare to RSSL connection, the websocket is slower and accept less simultaneous RIC subscriptions), the Python solution is probably not the right solution.
may I ask if there is a python solution that does not use websockets, instead using the EMA libraries?, or do we need to use a custom java app
Best Answer
-
Hello @LanceGabriel.Villacrusis
According to your "If you need to work with a websocket API, Python is a suitable choice.", the answer is not simply "Yes" or "No".
It is depending on the client requirements such as:- If the client needs the streaming data on the web, the browser's supported languages such as JavaScript or TypeScript is much more suitable than Python
- If the client needs performance, Python is obvious not a choice ("Python is a slow language").
- If the client needs to run an application on Windows platform, the .NET technology languages like C# is more suitable.
- etc.
Actually, if the client concerns about a performance, either Python or WebSocket API are not a choice for them.
The WebSocket API Tutorials choose to give developers detail via Python because it is one of the easiest to understand language.
The WebSocket (and the JSON message) connection is designed for supporting multiple languages, support an open-standard technology, easy to parse data. On the other hand, the RSSL connection is designed for highly distribution data application. It is the backbone of our LSEG Real-Time platform, so the EMA has a better performance than any languages on the WebSocket API.
I hope this information helps.
0
Answers
-
EMA SDK is only available in Java, C++ and .NET. Python will have to use Websocket API. The port 14002 is an RSSL port and cannot be used with Python. Websockets typically run on port 15000 and have to be enabled in ADS first.
0 -
So In summary:
Python and Websockets:
- Python supports websockets through libraries like
websockets
orwebsockets-client
. - If you need to work with a websocket API, Python is a suitable choice.
- Python supports websockets through libraries like
EMA Library and Python Compatibility:
- The EMA (Elektron Message API) library is primarily designed for Java, C++ and .NET.
- Unfortunately, there isn’t a direct Python implementation of the EMA library.
- If you specifically need EMA features, you’ll need to use the following Java, C++ and .NET
Custom Java Application:
- To leverage EMA features and interact with a websocket API, create a custom Java application.
- Your Java app can handle both EMA connectivity and websocket communication.
Kindly correct me if im wrong or if I have missed anything
0 -
Only websockets-client module is supported in provided samples.
If an app uses EMA, it can directly consume data from RSSL connection and does not need to use websockets. RSSL offers better performance compared to WS.
0 -
@wasin.w and @Gurpreet Thank you so much for your insights, would appreciate if you could validate and approve my summary:
Summary:
1.Python and Websockets:
-Python supports websockets through libraries like websockets or websockets-client.
-If you need to work with a websocket API using Python there are a few things to reconsider:
It depends on your requirements below
A. If the client needs the streaming data on the web, the browser's supported languages such as JavaScript or TypeScript is much more suitable than Python
B. If the client needs performance, Python is obvious not a choice ("Python is a slow language").
C. If the client needs to run an application on Windows platform, the .NET technology languages like C# is more suitable.
etc.
2. EMA Library and Python Compatibility:
-The EMA (Elektron Message API) library is primarily designed for Java, C++ and .NET.
-Unfortunately, there isn’t a direct Python implementation of the EMA library.
-If you specifically need EMA features, you’ll need to use the following Java, C++ and .NET
-If an app uses EMA, it can directly consume data from RSSL connection and does not need to use websockets. RSSL offers better performance compared to WS.
-If you are considered about performance, either Python or WebSocket API are not a choice.
The WebSocket API Tutorials choose to give developers detail via Python because it is one of the easiest to understand language.The WebSocket (and the JSON message) connection is designed for supporting multiple languages, support an open-standard technology, easy to parse data. On the other hand, the RSSL connection is designed for highly distribution data application. It is the backbone of our LSEG Real-Time platform, so the EMA has a better performance than any languages on the WebSocket API.
3. Custom Java Application:
-To leverage EMA features and interact with a websocket API, create a custom Java application.
-Your Java app can handle both EMA connectivity and websocket communication.
0 -
Hello @LanceGabriel.Villacrusis
Please let me remind you that even though the EMA supports both RSSL and the WebSocket connections, the RSSL connection is the recommended on.
0 -
0
Categories
- All Categories
- 3 Polls
- 6 AHS
- 36 Alpha
- 166 App Studio
- 6 Block Chain
- 4 Bot Platform
- 18 Connected Risk APIs
- 47 Data Fusion
- 34 Data Model Discovery
- 685 Datastream
- 1.4K DSS
- 616 Eikon COM
- 5.2K Eikon Data APIs
- 10 Electronic Trading
- Generic FIX
- 7 Local Bank Node API
- 3 Trading API
- 2.9K Elektron
- 1.4K EMA
- 252 ETA
- 556 WebSocket API
- 38 FX Venues
- 14 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 23 Messenger Bot
- 3 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 60 Open Calais
- 275 Open PermID
- 44 Entity Search
- 2 Org ID
- 1 PAM
- PAM - Logging
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 22 RDMS
- 1.9K Refinitiv Data Platform
- 652 Refinitiv Data Platform Libraries
- 4 LSEG Due Diligence
- LSEG Due Diligence Portal API
- 4 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.2K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 12 World-Check Customer Risk Screener
- 1K World-Check One
- 46 World-Check One Zero Footprint
- 45 Side by Side Integration API
- 2 Test Space
- 3 Thomson One Smart
- 10 TR Knowledge Graph
- 151 Transactions
- 143 REDI API
- 1.8K TREP APIs
- 4 CAT
- 27 DACS Station
- 121 Open DACS
- 1.1K RFA
- 104 UPA
- 193 TREP Infrastructure
- 228 TRKD
- 917 TRTH
- 5 Velocity Analytics
- 9 Wealth Management Web Services
- 90 Workspace SDK
- 11 Element Framework
- 5 Grid
- 18 World-Check Data File
- 1 Yield Book Analytics
- 46 中文论坛