|
1 | 1 | # Refinitiv Real-time WebSocket API with Web Workers Example |
| 2 | + |
| 3 | +- Last update: Jan 2021 |
| 4 | +- Environment: Any |
| 5 | +- Compiler: JavaScript |
| 6 | +- Prerequisite: Refinitiv Real-Time Advanced Data Hub and Refinitiv Real-Time Advanced Distribution servers version 3.2.1 and above |
| 7 | + |
2 | 8 | ## Overview |
3 | 9 |
|
4 | | -[Refinitiv Real-time WebSocket API](https://developers.refinitiv.com/elektron/websocket-api) (formerly known as Elektron WebSocket API) enables easy integration into a multitude of client technology environments such as scripting and web. This API runs directly on your Refinitiv Real-Time infrastructure and presents data in an open (JSON) readable format. The API supports all Refinitiv Real-Time data models and can be integrated into multiple client technology standards e.g. Python, R, .Net etc. |
| 10 | +[Websocket API for Pricing Streaming and Real-Time Service](https://developers.refinitiv.com/en/api-catalog/elektron/refinitiv-websocket-api) aka Websocket API application enables easy integration into a multitude of client technology environments such as scripting and web. This API runs directly on your Refinitiv Real-Time infrastructure and presents data in an open (JSON) readable format. The API supports all Refinitiv Real-Time data models and can be integrated into multiple client technology standards e.g. Python, R, .Net, etc. |
5 | 11 |
|
6 | | -The web browsers JavaScript runtime is a single-threaded environment by default. However, the HTML standard lets developers implement multi threads JavaScript application in web browser by introducing the [Web Workers](https://html.spec.whatwg.org/multipage/workers.html) feature that lets web browsers run JavaScripts in a main thread and a background thread (workers thread). |
| 12 | +The web browser's JavaScript runtime is a single-threaded environment by default. However, the HTML standard lets developers implement multi-threads JavaScript application in the web browser by introducing the [Web Workers](https://html.spec.whatwg.org/multipage/workers.html) feature that lets web browsers run JavaScripts in the main thread and a background thread (workers thread). |
7 | 13 |
|
8 | | -This example shows how to implement the Refinitiv Real-time WebSocket API with JavaScript web application with Web Workers. It allows the Web Workers thread to handle the connection logic with ADS server while the main thread handles the UI interaction events and displaying data. |
| 14 | +This example shows how to implement the Refinitiv Real-time WebSocket API with JavaScript web application with Web Workers. It allows the Web Workers thread to handle the connection logic with eal-Time Advanced Distribution server while the main thread handles the UI interaction events and displaying data. |
9 | 15 |
|
10 | | -There are two types of the Web Workers, [Dedicated Workers](https://html.spec.whatwg.org/multipage/workers.html#dedicated-workers-and-the-worker-interface) and [Shared Workers](https://html.spec.whatwg.org/multipage/workers.html#sharedworker). This example covers only how to implement the Refinitiv Real-time WebSocket API with JavaScript web browser application with Dedicated Workers. |
| 16 | +There are two types of Web Workers, [Dedicated Workers](https://html.spec.whatwg.org/multipage/workers.html#dedicated-workers-and-the-worker-interface) and [Shared Workers](https://html.spec.whatwg.org/multipage/workers.html#sharedworker). This example covers only how to implement the Refinitiv Real-time WebSocket API with JavaScript web browser application with Dedicated Workers. |
11 | 17 |
|
12 | | -*Note: The initial release of this API is for deployed ADS customers only (i.e. to use it you will need an installed version of ADS 3.2.1 and above). |
| 18 | +*Note: The initial release of this API is for deployed Refinitiv Real-Time Advanced Distribution Server customers only (i.e. to use it you will need an installed version of Refinitiv Real-Time Advanced Distribution Server 3.2.1 and above). |
13 | 19 |
|
14 | 20 | ## Supported Web Browsers |
15 | | -The example supports Chrome, Firefox and IE11 (based on the WebSocket and Web Workers browser supported platform). |
| 21 | +The example supports Chrome/Microsoft Edge (Chrome-based version), Firefox, and IE11 (based on the WebSocket and Web Workers browser supported platform). |
16 | 22 |
|
17 | 23 | ## Prerequisite |
18 | | -This example requires the following dependencies softwares. |
| 24 | +This example requires the following dependencies software. |
19 | 25 | 1. [Node.js](https://nodejs.org/en/) runtime - version 8.9.3 or higher. |
20 | 26 | 2. [npm](https://www.npmjs.com/) package manager (included with Node.js runtime) |
21 | 27 | 3. [Express.js](https://expressjs.com/) framework (will be installed via ```npm install``` command) |
@@ -43,22 +49,24 @@ The web application contains the following example files and folder: |
43 | 49 |
|
44 | 50 |  |
45 | 51 |
|
46 | | -3. If the machine is behind a proxy server, you need to configure Node.js uses proxy instead of a direct HTTP connection via the following command in command prompt: ```set https_proxy=http://<proxy.server>:<port>``` |
47 | | -4. Run ```$> node server.js``` in the command prompt to start the web server at HTTP port 8080 |
| 52 | +3. If the machine is behind a proxy server, you need to configure Node.js uses proxy instead of a direct HTTP connection via the following command in a command prompt: ```set https_proxy=http://<proxy.server>:<port>``` |
| 53 | +4. Run ```$> node server.js``` in the command prompt to start the webserver at HTTP port 8080 |
48 | 54 |
|
49 | 55 |  |
50 | 56 |
|
51 | | -5. Open web browser (IE11, Chrome and Firefox), then navigate to index.html of the web server at ```http://localhost:8080/index.html``` |
| 57 | +5. Open the web browser (IE11, Chrome/Microsoft Edge (Chrome-based version), and Firefox), then navigate to index.html of the web server at ```http://localhost:8080/index.html``` |
52 | 58 |
|
53 | 59 |  |
54 | 60 |
|
55 | 61 |
|
56 | 62 | ## References |
| 63 | + |
57 | 64 | For further details, please check out the following resources: |
58 | | -* [Refinitiv Real-time WebSocket API page](https://developers.refinitiv.com/websocket-api) on the [Refinitiv Developer Community](https://developers.refinitiv.com/) web site. |
| 65 | +* [Refinitiv Real-Time & Distribution Family page](https://developers.refinitiv.com/en/use-cases-catalog/refinitiv-real-time) on the [Refinitiv Developer Community](https://developers.refinitiv.com/) web site. |
| 66 | +* [WebSocket API page](https://developers.refinitiv.com/en/api-catalog/elektron/refinitiv-websocket-api). |
59 | 67 | * [Developer Webinar Recording: Introduction to Electron Websocket API](https://www.youtube.com/watch?v=CDKWMsIQfaw) |
60 | 68 | * [Mozilla Developer Network: Web Workers API page](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API). |
61 | 69 | * [Google HTML5 Rocks: The Basics of Web Workers page](https://www.html5rocks.com/en/tutorials/workers/basics/) |
62 | 70 | * [Mozilla Developer Network: WebSocket API page](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API) |
63 | 71 |
|
64 | | -For any question related to this article or Refinitiv Real-time WebSocket API page, please use the Developer Community [Q&A Forum](https://community.developers.refinitiv.com/). |
| 72 | +For any question related to this example or WebSocket API, please use the Developer Community [Q&A Forum](https://community.developers.refinitiv.com/). |
0 commit comments