RWF data via HMDS WebSocket API

Options
rares_patacean
edited May 30 in WebSocket API

Hi Team,

Currently in the WebSocket API documentation, the protocol mentioned is only tr_json2.

Is there any possibility to use RWF via HMDS WebSockets? This will ensure a better transport rate and maybe also a lower load on the backend ADSs.

Thank you,
Rares

Tagged:

Best Answers

  • Jirapongse
    Jirapongse ✭✭✭✭✭
    Answer ✓

    @rares_patacean

    You can use the Channel_Set configuration in the Consumer.

    		<Consumer>
    			<Name value="Consumer_2"/>			
    			<ChannelSet value="Channel_1, Channel_2"/>
    

    Channel_1 is for EMEA and Channel_2 is for AMER.

  • wasin.w V3
    wasin.w V3 admin
    Answer ✓

    Hello @rares_patacean

    According to the given information, the HMDS endpoint URL is

    wss://emea1-ws-fo-hmds.ppe.platform.refinitiv.com:443/WebSocket.

    The "wss" protocol means it is an encrypt WebSocket connection over HTTPS, so that is why an application needs to set the EncryptedProtocolType parameter.

    encrypted_protocol.png

Answers

  • @rares_patacean

    Why not use the RSSL/OMM for connecting to HMDS? EMA API is quite easy to use - see the SDK and the examples here.

  • The authentication model we use with HMDS is token based "AuthnToken", does EMA API support this type of authentication?

  • https://github.com/Refinitiv/Real-Time-SDK/tree/825c4c2113da5389d5f927cfbcadd7c2be495b18/Java/Ema/Examples/src/main/java/com/refinitiv/ema/examples/training/consumer/series400/ex430_MP_Authentication

  • @Gurpreet , I've had couple of tries but it seems that a HMDS endpoint, such as: wss://emea1-ws-fo-hmds.ppe.platform.refinitiv.com:443/WebSocket, that includes the path does not work fine.

    When I set for Consumer host the value: emea1-ws-fo-hmds.ppe.platform.refinitiv.com/WebSocket, I get:

    2025-07-18 17:20:13.306 WARNING com.refinitiv.ema.access.ChannelCallbackClient reactorChannelEventCallbackloggerMsgClientName: ChannelCallbackClientSeverity: WarningText: Received ChannelDownReconnecting event on channel Channel_1RsslReactor Channel is nullError Id 0Internal sysError 0Error Location Reactor.processWorkerEventError text Reconnection failed: java.nio.channels.UnresolvedAddressExceptionloggerMsgEnd

    If I don't use the path Websocket the socket can't be established. I think using the specified path is a constraint from HMDS Platform.

    Can you please advise?

    In our WebSocket implementation with HMDS, would it be possible to use the RWF encoding of JSON messages, if we specify the rssl.rwf for Websocket Protocols, thus leveraging the RWF benefits?

    Thanks,

    Rares

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @rares_patacean

    I can use the EMA to connect to the emea1-ws-fo-hmds.ppe.platform.refinitiv.com.

    The configurations look like this:

    		<Channel>
    			<Name value="Channel_5"/>
    			<ChannelType value="ChannelType::RSSL_ENCRYPTED"/>
    			<CompressionType value="CompressionType::None"/>
    			<GuaranteedOutputBuffers value="5000"/>
    			<ConnectionPingTimeout value="30000"/>
    			<TcpNodelay value="1"/>
    			<WsMaxMsgSize value="61440"/>
    			<Host value="emea1-ws-fo-hmds.ppe.platform.refinitiv.com"/>
    			<Port value="443"/>
    			<EncryptedProtocolType value="EncryptedProtocolType::RSSL_WEBSOCKET"/>
    			<WsProtocols value="rssl.rwf"/>
    		</Channel>
    
  • @Jirapongse, thank you very much, it works this way.

    For some reason it was not clear to me that I should use <EncryptedProtocolType value="EncryptedProtocolType::RSSL_WEBSOCKET"/>, I was attempting RSSL_WEBSOCKET directly in ChannelType.

    Do you happen to know if we could specify a fallback region? For example for EMEA we could have AMER in case EMEA becomes unreachable?

    Thanks