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:
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:
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?