You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+33-31Lines changed: 33 additions & 31 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,39 +1,41 @@
1
-
# Contributing your data to Refinitiv with Elektron WebSocket API
2
-
- Last update: July 2019
1
+
# Contributing your data to Refinitiv with WebSocket API and Refinitiv Real-Time Distribution System
2
+
- Last update: December 2020
3
3
- Environment: Windows and Linux OS
4
4
- Compiler: Python
5
-
- Prerequisite: ADS and ADH servers version 3.2.1 and above, RCC Access Credentials
5
+
- Prerequisite: Refinitiv Real-Time Distribution servers version 3.2.1 and above, RCC Access Credentials
6
6
7
7
## RCC Overview
8
8
9
-
The Refinitiv Contribution Channel (RCC - formerly known as TRCC) is a new service for on-boarding content to the Refinitiv. Depending on the client's needs, access to the service will be fulfilled by one or more of the following products: Contributions Channel for TREP, Contributions Channel for Elektron API, Contributions Channel for Spreadsheet. RCC aims for replacing the legacy Market Link IP (MLIP) system.
9
+
The Refinitiv Contribution Channel (RCC) is a new service for on-boarding content to Refinitiv. Depending on the client's needs, access to the service will be fulfilled by one or more of the following products: Contributions Channel for Refinitiv Real-Time Advanced Distribution Server/Advanced Data Hub Server, Contributions Channel for Real-Time API, Contributions Channel for Spreadsheet. RCC aims for replacing the legacy Market Link IP (MLIP) system.
10
10
11
11
Data Contribution is a means to send your pricing data directly to Refinitiv , from where it can fan out globally. Leading market participants, such as banks and brokers, use Refinitiv to publish and distribute their information to the community of financial professions, in order to advertise their prices to clients and prospects.
12
12
13
13
## Application Overview
14
14
15
-
This example shows how to writing an application to contribute your data to RCC using [Elektron WebSocket API](https://developers.refinitiv.com/elektron/websocket-api) through Thomson Reuters Enterprise Platform (TREP). The example just connects to TREP via a WebSocket connection, then sends an off-stream post to contribute item to RCC server via that TREP. The project are implemented with Python language for both console and Jupyter Notebook applications, but the main concept and post message structures are the same for all technologies.
15
+
This example shows how to writing an application to contribute your data to RCC using [Websocket API for Pricing Streaming and Real-Time Service ](https://developers.refinitiv.com/en/api-catalog/elektron/refinitiv-websocket-api)(aka WebSocket API) through Refinitiv Real-Time Distribution System (Refinitiv Real-Time Advanced Distribution and Advanced Data Hub servers). The example just connects to Refinitiv Real-Time Advanced Distribution Server via a WebSocket connection, then sends an off-stream post to contribute item to RCC server via that Refinitiv Real-Time Distribution System. The project are implemented with Python language for both console and Jupyter Notebook applications, but the main concept and post message structures are the same for all technologies.
16
16
17
-
If you are interested to contribute data using the RSSL connection (with or without TREP), please visit the following series of Elektron SDK and RCC based on your prefer API:
18
-
*[Contributing your data to Refinitiv article](https://developers.refinitiv.com/article/contributing-your-data-thomson-reuters).
19
-
*[EMA Java Tutorial - Posting data to Contribution Channel](https://developers.refinitiv.com/elektron/elektron-sdk-java/learning?content=41885&type=learning_material_item).
20
-
*[EMA C++ Tutorial - Posting data to Contribution Channel](https://developers.refinitiv.com/elektron/elektron-sdk-cc/learning?content=26452&type=learning_material_item).
17
+
If you are interested to contribute data using the RSSL connection (with or without Refinitiv Real-Time Distribution System)), please visit the following series of Real-Time SDK and RCC based on your prefer API:
18
+
*[Contributing your data to Refinitiv article](https://developers.refinitiv.com/en/article-catalog/article/contributing-your-data-refinitiv).
19
+
*[EMA Java Tutorial - Posting data to Contribution Channel](https://developers.refinitiv.com/en/api-catalog/elektron/elektron-sdk-java/tutorials#ema-consumer-posting-data-to-contribution-channel).
20
+
*[EMA C++ Tutorial - Posting data to Contribution Channel](https://developers.refinitiv.com/en/api-catalog/elektron/elektron-sdk-cc/tutorials#ema-consumer-posting-data-to-contribution-channel).
21
21
22
-
If you are not familiar with Elektron WebSocket API Posting concept, please visit [Contributing Data to TREP using the Websocket API](https://developers.refinitiv.com/article/contributing-data-trep-using-websocket-api) article which will give you a full explanation of the WebSocket API Posting mechanisms and process.
22
+
If you are not familiar with WebSocket API Posting concept, please visit [Contributing Data to Refinitiv Real-Time using the Websocket API](https://developers.refinitiv.com/en/article-catalog/article/contributing-data-trep-using-websocket-api) article which will give you a full explanation of the WebSocket API Posting mechanisms and process.
23
23
24
-
*Note:* In an off-stream post, the client application can send a post for an item via a Login stream, regardless of whether a data stream first exists. The route of the post is determined by the TREP (ADS and ADH) configuration.
24
+
*Note:* In an off-stream post, the client application can send a post for an item via a Login stream, regardless of whether a data stream first exists. The route of the post is determined by the Refinitiv Real-Time Distribution System configuration.
25
25
26
26
## Contribution Setups
27
27
28
-
The Elektron WebSocket API cannot connect to RCC server directly (only Elektron SDK C++ and Java APIs support that feature). It requires TREP version 3.2.1 (and above) to take care of the JSON-OMM conversion, RCC connection and login process for the WebSocket application.
28
+
**Update (As of November 2020)**: The direct Websocket access to Contributions Channel is coming soon.
29
+
30
+
Developers can contributing data to RCC with Real-Time SDK C++/Java (RSSL connection) and WebSocket API (WebSocket connection). This article is focusing on contributing data via Refinitiv Real-Time Distribution System servers (Real-Time Advanced Distribution and Advanced Data Hub servers). The servers will take care of the RCC connection, JSON-OMM conversion, and login process for the application.
The TREP infrastructure connects to RCC through the delivery direct network via Tunnel Stream Aggregator (TSA) adapter, which is a private network (TLS encrypted) between a client site and Refinitiv. The TSA adapter is already packaged with the ADH version 3.2, and needs to be configured. You can find more detail regarding the TREP-RCC configurations in[Contributing your data to Refinitiv article](https://developers.refinitiv.com/article/contributing-your-data-thomson-reuters) page (*Contribution through TREP* section). This example also contain example ADH-RCC configurations in *trep_config/rmds_trcc.cnf* file.
34
+
The Refinitiv Real-Time Advanced Data Hub server connects to RCC through the delivery direct network via Tunnel Stream Aggregator (TSA) adapter, which is a private network (TLS encrypted) between a client site and Refinitiv. The TSA adapter is already packaged with the Advanced Data Hub version 3.2, and needs to be configured. You can find more detail regarding the Advanced Data Hub-RCC configurations on[Contributing your data to Refinitiv article](https://developers.refinitiv.com/article/contributing-your-data-thomson-reuters) page. This example also contain example Advanced Data Hub-RCC configurations in *trep_config/rmds_trcc.cnf* file.
33
35
34
36
## Prerequisite
35
37
This example requires the following dependencies softwares and libraries.
36
-
1.TREP server (both ADS and ADH) 3.2.x with WebSocket connection.
38
+
1.Refinitiv Real-Time Advanced Data Hub and Refinitiv Real-Time Advanced Distribution servers 3.2.x with WebSocket connection.
37
39
2.[Python](https://www.python.org/) compiler and runtime
4. Python's [websocket-client](https://pypi.org/project/websocket-client/) library (*version 0.49 or greater*).
@@ -60,7 +62,7 @@ This example project contains the following files and folders
60
62
61
63
## How to run this console example
62
64
63
-
Please be informed that your TREP server (ADS and ADH) should be applied the RCC configurations and RCC contribution service should be "Up" before running an example. The RCC access credentials are required in the connection between ADH server and RCC server only, not in the application level.
65
+
Please be informed that your Refinitiv Real-Time Advanced Data Hub and Real-Time Advanced Distribution servers should be applied the RCC configurations and RCC contribution service should be "Up" before running an example. The RCC access credentials are required in the connection between ADH server and RCC server only, not in the application level.
64
66
65
67

66
68
@@ -71,7 +73,7 @@ Please be informed that your TREP server (ADS and ADH) should be applied the RCC
71
73
3. Run ```$> pip install -r requirements.txt``` command in a console to install all the dependencies libraries.
72
74
4. Then you can run trcc_posting.py application with the following command
73
75
```
74
-
$> python trcc_post.py --hostname <ADS server IP Address/Hostname> --port <WebSocket Port> --item <Contribution item name> --service <ADS Contribution Service name>
76
+
$> python trcc_post.py --hostname <Real-Time Advanced Distribution server IP Address/Hostname> --port <WebSocket Port> --item <Contribution item name> --service <Real-Time Advanced Distribution server Contribution Service name>
75
77
```
76
78
77
79
## How to run this console example in Docker
@@ -84,13 +86,13 @@ Please be informed that your TREP server (ADS and ADH) should be applied the RCC
84
86
```
85
87
4. Once the build is success, you can create and run the container with the following command
86
88
```
87
-
$> docker run esdk_ws_rcc_python --hostname <ADS server IP Address/Hostname> --port <WebSocket Port> --item <Contribution item name> --service <ADS Contribution Service name>
89
+
$> docker run esdk_ws_rcc_python --hostname <Real-Time Advanced Distribution server IP Address/Hostname> --port <WebSocket Port> --item <Contribution item name> --service <Real-Time Advanced Distribution server Contribution Service name>
88
90
```
89
91
90
-
*Note*: If you want to connect a docker application to your *localhost* ADS server, please refer to this [Stack Overflow answer page](https://stackoverflow.com/questions/24319662/from-inside-of-a-docker-container-how-do-i-connect-to-the-localhost-of-the-mach).
92
+
*Note*: If you want to connect a docker application to your *localhost* Real-Time Advanced Distribution server, please refer to this [Stack Overflow answer page](https://stackoverflow.com/questions/24319662/from-inside-of-a-docker-container-how-do-i-connect-to-the-localhost-of-the-mach).
91
93
92
94
## Example Results
93
-
### Initiate and Login to TREP
95
+
### Initiate and Login to Real-Time Advanced Distribution server
94
96
```
95
97
Connecting to WebSocket ws://localhost:15000/WebSocket ...
96
98
WebSocket successfully connected!
@@ -146,7 +148,7 @@ RECEIVED:
146
148
147
149
### Contribution data via an Off-Stream Post message
148
150
```
149
-
Sending Off-Stream Post to TREP Server
151
+
Sending Off-Stream Post to Real-Time Advanced Distribution server
150
152
SENT:
151
153
{
152
154
"Ack":true,
@@ -193,14 +195,14 @@ RECEIVED:
193
195
```
194
196
195
197
## References
196
-
* [Refinitiv Elektron SDK Family page](https://developers.refinitiv.com/elektron) on the [Refinitiv Developer Community](https://developers.refinitiv.com/) web site.
197
-
* [Refinitiv Elektron WebSocket API page](https://developers.refinitiv.com/websocket-api).
198
-
* [Developer Webinar Recording: Introduction to Electron WebSocket API](https://www.youtube.com/watch?v=CDKWMsIQfaw).
199
-
* [Contributing Data to TREP using the Websocket API article](https://developers.refinitiv.com/article/contributing-data-trep-using-websocket-api).
200
-
* [Contributing your data to Refinitiv article](https://developers.refinitiv.com/article/contributing-your-data-thomson-reuters).
* [Refinitiv Data Model Discovery page](https://refinitiv.fixspec.com/specserver/specs/reuters): Explore TR data models, content definitions and data update behaviors.
203
-
* [EMA Java Tutorial - Posting data to Contribution Channel](https://developers.refinitiv.com/elektron/elektron-sdk-java/learning?content=41885&type=learning_material_item).
204
-
* [EMA C++ Tutorial - Posting data to Contribution Channel](https://developers.refinitiv.com/elektron/elektron-sdk-cc/learning?content=26452&type=learning_material_item).
205
-
206
-
For any question related to this example or Elektron WebSocket API, please use the Developer Community [Q&A Forum](https://community.developers.refinitiv.com/spaces/152/websocket-api.html).
198
+
* [Refinitiv Real-Time & Distribution use case page](https://developers.refinitiv.com/en/use-cases-catalog/refinitiv-real-time) on the [Refinitiv Developer Community](https://developers.refinitiv.com/) web site.
199
+
* [Websocket API for Pricing Streaming and Real-Time Services page](https://developers.refinitiv.com/en/api-catalog/elektron/refinitiv-websocket-api).
200
+
* [Developer Webinar Recording: Introduction to WebSocket API](https://www.youtube.com/watch?v=CDKWMsIQfaw).
201
+
* [Contributing Data to Refinitiv Real-Time using the Websocket API article](https://developers.refinitiv.com/en/article-catalog/article/contributing-data-trep-using-websocket-api).
202
+
* [Contributing your data to Refinitiv article](https://developers.refinitiv.com/en/article-catalog/article/contributing-your-data-refinitiv).
* [Refinitiv Data Model Discovery page](https://refinitiv.fixspec.com/specserver/specs/reuters): Explore TR data models, content definitions and data update behaviors.-->
205
+
* [EMA Java Tutorial - Posting data to Contribution Channel](https://developers.refinitiv.com/en/api-catalog/elektron/elektron-sdk-java/tutorials#ema-consumer-posting-data-to-contribution-channel).
206
+
* [EMA C++ Tutorial - Posting data to Contribution Channel](https://developers.refinitiv.com/en/api-catalog/elektron/elektron-sdk-cc/tutorials#ema-consumer-posting-data-to-contribution-channel).
207
+
208
+
For any question related to this example or WebSocket API, please use the Developer Community [Q&A Forum](https://community.developers.refinitiv.com/spaces/152/websocket-api.html).
0 commit comments