Connect to the desktop session by using the R Library

Nini
Nini LSEG
edited May 28 in Eikon Data APIs

I recognise that all support is basically focused on Python, but I don’t want to run another Python-based system next to the R-based system we already have.

However, going through the Python documentation, it seems to me that, under-the-hood, the Eikon Data API is just JSON over WebSocket on localhost:9000.

Therefore, it should be possible to simply open a WebSocket to my local Eikon/Workspace app, and then send JSON requests to specify the data I need, no?

To verify that the Eikon/Workspace app indeed listens to port 9000, I checked the .portInUse file in this location:

%APPDATA%\Refinitiv\Data API Proxy\.portInUse

That file indeed says ‘9000’. I tested this further using the command below in PowerShell:

image-c4777be955b48-4baa.png

As far as I can see, this is a good result, so the Workspace app indeed listens to port 9000.

I also tested the raw Websocket handshake like this:

image-869145fc5aa5f8-b64c.png

To be honest, I am struggling to interpret this result. The fact that it shows ‘Upgrade’ suhhest a successful upgrade. There are no intercepting proxies and no TLS. That said, I am not so sure about the ‘Empty reply’.

In any case, I tried to open a Websocket client using the code below in R (see bottom of email). The part under ‘check status’ produces status code 200, which is good. Still, when calling the ws$connect() command, I get this error message:

[error] handle_read_http_response error: websocketpp.transport:7 (End of File)

As as you can see, despite all of the above, the R client never fires the onOpen event and immediately hits EOF.

With that in mind, perhaps I can ask you the following:

1. Are there any additional headers, handshake payloads, or paths I must include beyond ws://127.0.0.1:<port>/ with sub-protocol tr_json2?

2. Are there any debug or log settings should I enable in Workspace/Eikon to capture the WebSocket handshake details?

3. Should I be targeting a different HTTP path or WebSocket sub-path (e.g. under /api/…) for Data API requests?

Answers

  • Hello @Nini

    We do not support/recommend using the raw protocol. Its use and interpretation is only for the LSEG data libraries. The protocol specifications may change any time.

    R Studio is not supported by LSEG, but there is a third party module - eikonapir, which works with LSEG Workspace.

    https://github.com/ahmedmohamedali/eikonapir