I have a .NET application which uses below DLL files to get the real time market data (Rates).
We are planning to use the latest APIs to get the real time market data.
We did some research and found that we have latest RTSDK APIs which can be used but these APIs are either in C/C++ or JAVA. I didn't find any thing which is related to .NET.
Could you please help me how to move forward from here.
Do we have any other APIs which can be used directly used with .NET C# application to get the real time market data (rate)?
Or do we have any other mechanism which is suitable to .NET C# application to gte the real time market data (rate).
There is the Websocket API for Pricing Streaming and Real-Time Services (aka WebSocket API) that lets developers use any programming language that supports JSON message and WebSocket API to consume real-time data from deployed Refinitiv Real-Time Distribution System.
The WebSocket API resources pages are the following:
You can download the C# example from the following pages:
If you are planning to consume data from Refinitiv Real-Time - Optimized (cloud solution), the examples are the following:
The other community-based.Net API that also supports the WebSocket connection to Refinitiv Real-Time Distribution Systems*, and, to Refinitiv Real-Time - Optimized (cloud solution) is Refinitiv Data Platform Library for .NET. Please find the API Quickstart on this page.
Hope this help.
Thanks for quick response. I appreciate that.
I will look into the above links and hoping that it will have all the reading material.
Few additional questions:
Is the WebSocket API only option left for the .NET C# application to get the real time price?
I was looking into the refinitive site and found the below
If you don't mind, could you please let me know if the above one has any relevance with real time price streaming.
Also, is the below sheet I don't see anything related to WebSocket API (If required, I can log a separate ticket for it)
What is RFA .NET 8.0?
sorry for asking many questions in one go.
I cannot answer the question regarding .NET APIs for use in custom applications, I strongly suggest you contact your Refnitiv representative to help you.
Regarding the RFA .Net, the API can connect and consume data from Refinitiv Real-Time Distribution System. But the RFA API is a feature-completed API (non-strategic), that why I recommend you check the strategic WebSkcet API.
The WebSocket API is a server-side API based on standard WebSocket and JSON message. So, any programming languages and Websocket frameworks that support JSON message format can connect to it based on protocol/message specification. That is the reason it is not listed in the API compatibility matrix.
You can find more details about RFA.NET from
Only RDC named user can download RFA.NET from the page.
I believe that you are using SFC/SFC COM with the SSL connection type. Actually, you can create a new application using RFA.NET, but you have to re-write the app and use a new RSSL connection. Please note that RFA is now in the maintenance phase, so it will not support a new feature and cannot connect to Refinitiv Real-Time - Optimized, which is a cloud solution.
If you have to open a new project to develop a new app and plan to support a connection to both the local Provider server and the Refinitiv Real-Time - Optimized (cloud solution), Websocket should be a better choice for you.
Thanks for your input here.
you are correct we were using SFC/SFC COM in our current application.
As you have suggested the RFA.NET is in maintenance phase using WebSocket API should be the best option for us.
If you don't mind need some clarification.
What your other clients which are working/developing application with .NET C# use if they want to go with latest APIs or technology?
Do they all prefer to go with WebSocket API route?
Or we have any other alternative here?
Some existing customer may well use RFA.NET, however, more recent customers or new developments by existing customers are more likely to use Websocket API.
Some are also exploring the RDP.NET Library which is an ease-of-use layer around the Websocket API and also allows access to both realtime streaming as well as other non-realtime data from the Refinitiv Data Platform.
NOTE that the RDP.NET library is a community-based API and managed as an open-source project - whereas the Websocket API is a fully supported Refinitiv offering.
Going down the RFA.NET route could restrict your future choices in terms of consumption of data from other sources e.g. some organisations are moving away from deployed Refinitiv Realtime Distribution systems towards cloud-based data sources. RFA.NET will not support this kind of move or other future offerings from Refinitiv.
Currently, Refinitiv Real-Time SDK does not plan to release the .NET version, so the choice is still RFA.NET and Websocket.
As far as I understand, some clients still use RFA.NET to implement desktop app, publisher app, and windows service app because they still need a configuration for low latency or high throughput with additional configuration provided by RFA. And the app was designed to connecting to their own TREP(rebrand to Refinitiv Real-Time Distribution System) and do not have a plan for the cloud solution now.
Note that RFA.NET is just a C++/CLI wrapper library built on top of RFA C++. Therefore it supports .NET SDK on Windows only.
Some clients have decided to use WebSocket instead because they need a cross-platform solution to implement the .NET Core app/services. They need to fetch a price or data to their system, and they need a choice to develop and deploy the application on a modern cloud solution or implementing microservices.
In terms of scalability - that is something you would need to test for in your environment, using your list of typical RICs, during peak volatility times and perform your typical payload processing to get an idea of how scalable Websocket API could be.
I say this, because, there are too many factors at play e.g. your network speed and bandwidth, the volatility of your typical instruments, your payload size, just how much processing you do to the payload, the performance of your PC/server etc etc.
I have personally tested the Websocket API with a watchlist size of 3000 instruments and it seemed to work fine during normal market activity periods - but then I was just dumping the payload data to a file and running the example on my normal work laptop.
We may be releasing some performance figures in the (not too near) future. However, these will just show what we managed to achieve without our very specific and detailed software and hardware configuration, watchlist, payload size etc. The figures could and probably will vary from what you may achieve in your particular usage scenario + implementation.
If you do want to try a few basic initial tests of your own, you could use my test client example - which is written in Python - but it should provide some indicative results. Or you could use it as a starting point and amend the code to reflect your particular implementation in .NET.
NOTE: it is purely an educational example
I am not very sure if this is the correct place to ask this question. Please let me know if I need to raise it somewhere else.
I was looking into the examples provided at https://developers.refinitiv.com/en/api-catalog/elektron/refinitiv-websocket-api/download for CSharp and I can see that we are using "websocket-sharp.dll" in all the examples.
And as per my understanding, this is a WebSocket wrapper is created CSharp application to ease the development.
Do you have preference of using "websocket-sharp.dll" in CSharp application?
Appreciate your help here.
I didn't the below completely. Could you please elaborate a bit more here.
"If you wish to use an alternative you may do so, but if you have any issues consuming data from our servers, you may be asked to recreate the issue using the one we use in our example."
Thanks for the above detail, that make sense to me. Thanks.
I can see from the Open source Websocket-sharp's doc, it supported .NET Framework 3.5 or later. My understanding is that I can use Websocket-sharp DLL with any CSharp application where the target framework is 3.5 or later (We have couple of client where the solution build in 3.5 .NET Framework).
Could you please share your thoughts,
Very good morning.
As per the examples provided, we only need the below key parameters when we need to connect to WebSocket API server to get the realtime market price.
Let me know if there is anything else is required.