Websocket connection issue

Options

We are getting below exception while connecting to Websocket API.

Can you please check..

Connecting to WebSocket wss://amer-1.pricing.streaming.edp.thomsonreuters.com:443/WebSocket ...

com.neovisionaries.ws.client.HostnameUnverifiedException: The certificate of the peer does not match the expected hostname (amer-1.pricing.streaming.edp.thomsonreuters.com)

at com.neovisionaries.ws.client.SocketConnector.verifyHostname(SocketConnector.java:281)

at com.neovisionaries.ws.client.SocketConnector.doConnect(SocketConnector.java:246)

at com.neovisionaries.ws.client.SocketConnector.connect(SocketConnector.java:190)

at com.neovisionaries.ws.client.WebSocket.connect(WebSocket.java:2323)

at reuters.MarketPriceEdpGwAuthentication.connect(MarketPriceEdpGwAuthentication.java:165)

at reuters.MarketPriceEdpGwAuthentication.main(MarketPriceEdpGwAuthentication.java:98)

Best Answer

  • wasin.w
    wasin.w admin
    Answer ✓

    Hello @krishna muppavarapu

    You can find more detail regarding the ERT in Cloud endpoints in section 2.7 Connect to ERT Cloud VIP of ERT in Cloud installation and configuration guide.

    Basically, the amer-3 aims for the standard single connection. The amer-1 and amer-2 aim for case that the application may establish more than one connection to independent infrastructure and subscribe to the same content simultaneously among connections.

Answers

  • Hi @krishna muppavarapu

    Updated: I do see an issue with amers-1 endpoint. Please use amer-2.pricing.streaming.edp.thomsonreuters.com endpoint meanwhile.

  • Ok, I see the issue. The certificate has expired. I will raise it internally -

    *** Certificate chain
    chain [0] = [
    [
    Version: V3
    Subject: CN=amer-1.pricing.streaming.edp.thomsonreuters.com, OU=F&R, O=Thomson Reuters, L=Eagan, ST=Minnesota, C=US
    Signature Algorithm: SHA256withRSA, OID = 1.2.840.113549.1.1.11

    Key: Sun RSA public key, 2048 bits
    modulus: 19976974489711691032821577094974299965686857618413261027419367569268222200610781121175909143109092107669178746160299634559231267192640717529448745557383586267945182507857051666013596052689047640390345877652547429278005120626092673794653095160615742130511724476013438954179166762890057834161544674866851431601742267174155842752574664357040006669576996170628618819738562092260062872579532372187774178356361830700192219218644890307977205730061428892497504721582009002553664736903406838870457726800863469414270692898217457598635612225568438096340408800049674991897002816062832415271161847354664785954734280895930897261589
    public exponent: 65537
    Validity: [From: Mon Apr 01 20:00:00 EDT 2019,
    To: Thu Apr 02 08:00:00 EDT 2020]
    Issuer: CN=DigiCert SHA2 Secure Server CA, O=DigiCert Inc, C=US
    SerialNumber: [ 0e0cf0bc 0b8295ad ac410e35 f1c1e58a]


  • Hi @Gurpreet.

    Thanks for your quick response. This actually raises a question on how as a consumer we should handle the primary and backup?

    Service discovery gives us following endpoints (for US region).

    So what is recommended strategy on selecting the endpoint url??

    "us-east-1a" - amer-1.pricing.streaming.edp.thomsonreuters.com

    "us-east-1b" - amer-2.pricing.streaming.edp.thomsonreuters.com

    And we get one more like below

    "location":[

    "us-east-1a",

    "us-east-1b"

    ],

    "endpoint":"amer-3.pricing.streaming.edp.thomsonreuters.com",


  • These both endpoints are in the same region and so your app can connect to either one.

  • Hi @Wasin Waeosri, Thank you for your response. I have question on how to identify the "Standard Connection" configuration. Discovery service just returns with location array with one single entry or multiple entries (both 1a and 1b) but it doesn't have any attribute for us to filter standard vs premium configuration. What is the better way to filter this response?

    {

    "port":443,

    "location":[

    "us-east-1a",

    "us-east-1b"

    ],

    "provider":"aws",

    "transport":"websocket",

    "endpoint":"amer-3.pricing.streaming.edp.thomsonreuters.com",

    "dataFormat":[

    "tr_json2"

    ]

    },

    {

    "port":443,

    "location":[

    "us-east-1a"

    ],

    "provider":"aws",

    "transport":"websocket",

    "endpoint":"amer-1.pricing.streaming.edp.thomsonreuters.com",

    "dataFormat":[

    "tr_json2"

    ]

    },

    {

    "port":443,

    "location":[

    "us-east-1b"

    ],

    "provider":"aws",

    "transport":"websocket",

    "endpoint":"amer-2.pricing.streaming.edp.thomsonreuters.com",

    "dataFormat":[

    "tr_json2"

    ]

    }

  • Hello @krishna muppavarapu

    Sorry for a late reply. I saw you post a new question here. Could you please check my colleague answer in that post?