We wonder what are the supported proxies for RFA API
On our side we tested with haproxy and it worked.
However, with socks/http proxy or TCP proxy, it seems that it is not working.
Can you please confirm and provide a list of supported proxies ?
Not entirely sure I understand your question
We don't have any officially supported Proxy servers for RFA or RT-SDK.
However, if you are using proxy authentication we only support 'Basic, NTLM or Kerberos' auth schemes - as noted in the RFA Java Developers Guide (section 13.16.3 Proxy Authentication)
I think you have to distinguish between when using a http/https connection to connect to the server (tunnelingType = http/https) and using a plain-vanilla socket connection to connect to the server (tunnelingType = none)
For proxying http/https the semantics are well-defined in the http protocol. This means that in principle any web proxy server should work as long as it supports the HTTP CONNECT semantics. The difficult part is really if your proxy server requires authentication. Not so much the traffic itself. When the RFA documentation refers to "support for proxy" it is this form of proxying that is meant.
For proxying of the TCP connection itself you may get proxying to work but I would never rely on it for production purpose. This form of proxying is completely transparent to the RFA lib. Proxying at the Level4 layer is actually quite complex and in particular for high-throughput environment I doubt the proxy server would be up for it. This being said we've succesfully TCP-proxied RSSL traffic at Level4 layer in my company, but only, only for non-prod purpose. If you get weird results, for example because TCP packets arrive out of order then you are really on your own. I don't work for Refinitiv but I would never officially support L4 proxying had I been their shoes. But as I said, I've seen it work for RSSL traffic without a glitch. YMMV.
SOCKS implies proxying at Level5 layer. If the RFA lib were to support it would require explicit support from the lib itself. Since it is not mentioned in the RFA docs I would assume that SOCKS is not supported as such. However. the JVM supports it so without knowledge of the RFA lib you may be able to do something like:
$ java -DsocksProxyHost=socks.abc.intranet yourRFAJavaApplication
The downside of this approach is that the use of SOCKS will apply to any TCP connection the application makes, not just the connection to the RSSL endpoint. This is rarely what you want. For this reason, this feature in the JVM is almost never useful.
Even if you have control over the RFA Java application (i.e. in-house developed) it will not help you as the RFA SDK does not allow you to pass a
Socket as part of creating a session to an RSSL endpoint.