RDP Snapshot requests not returning data Snapshot

Using market_price_edpgw_service_discovery.py example app. RDP Snapshot requests not returning data Snapshot. Have "Streaming":false set.


{


"ID":2,


"Key":{


"Name":"/IBM.N"


},


"Streaming":false


}

Best Answer

Answers

  • Hi @Branko - POC,

    Your request structure is correct. Can you please paste the complete output from the sample including the login response and any refresh and update messages.

  • RECEIVED on session1:

    [

    {

    "Domain":"Login",

    "Elements":{

    "MaxMsgSize":61426,

    "PingTimeout":30

    },

    "ID":1,

    "Key":{

    "Elements":{

    "AllowSuspectData":1,

    "ApplicationId":"256",

    "ApplicationName":"ADS",

    "AuthenticationErrorCode":0,

    "AuthenticationErrorText":{

    "Data":null,

    "Type":"AsciiString"

    },

    "AuthenticationTTReissue":1619627792,

    "Position":"192.168.0.124/CHDPQM433LT",

    "ProvidePermissionExpressions":1,

    "ProvidePermissionProfile":0,

    "SingleOpen":1,

    "SupportBatchRequests":7,

    "SupportEnhancedSymbolList":1,

    "SupportOMMPost":1,

    "SupportOptimizedPauseResume":0,

    "SupportPauseResume":0,

    "SupportStandby":0,

    "SupportViewRequests":1

    },

    "Name":"AQIC5wM2LY4SfcydNWCrb%2Fq1KzoDHGCpCprs2rfBVVCEw5Y%3D%40AAJTSQACMjAAAlNLABM0NDk1NTkzNDYyNzUwOTQ0ODQyAAJTMQACMzE%3D%23"

    },

    "State":{

    "Data":"Ok",

    "Stream":"Open",

    "Text":"Login accepted by host ads-fanout-lrg-az1-use1-prd."

    },

    "Type":"Refresh"

    }

    ]

  • This is just the login response - where is the response from your item request?

  • The issue is that there is no item response. There is only Ping/Pong message after what I provided above.

  • Was there a SENT message in your console? Has your request even been sent to the server? You haven't included the full capture. Here is what I get:

    RECEIVED on session1:
    [
      {
        "Domain": "Login",
        "Elements": {
          "MaxMsgSize": 61426,
          "PingTimeout": 30
        },
        "ID": 1,
        "Key": {
          "Elements": {
            "AllowSuspectData": 1,
            "ApplicationId": "256",
            "ApplicationName": "ADS",
            "AuthenticationErrorCode": 0,
            "AuthenticationErrorText": {
              "Data": null,
              "Type": "AsciiString"
            },
            "AuthenticationTTReissue": 1619630737,
            "Position": "192.168.56.1/Carbon2",
            "ProvidePermissionExpressions": 1,
            "ProvidePermissionProfile": 0,
            "SingleOpen": 1,
            "SupportBatchRequests": 7,
            "SupportEnhancedSymbolList": 1,
            "SupportOMMPost": 1,
            "SupportOptimizedPauseResume": 0,
            "SupportPauseResume": 0,
            "SupportStandby": 0,
            "SupportViewRequests": 1
          },
          "Name": "AQIC5wM2L**x%23"
        },
        "State": {
          "Data": "Ok",
          "Stream": "Open",
          "Text": "Login accepted by host ads-fanout-lrg-az1-use1-prd."
        },
        "Type": "Refresh"
      }
    ]

    SENT on session1:
    {
      "ID": 2,
      "Key": {
        "Name": "CAD="
      },
      "Streaming": false
    }


    RECEIVED on session1:
    .
    .


  • Sending EDP-GW service discovery request to https://api.refinitiv.com/streaming/pricing/v1/

    EDP-GW Service discovery succeeded. RECEIVED:

    {

    "services":[

    {

    "dataFormat":[

    "tr_json2"

    ],

    "endpoint":"apac-1-t3.streaming-pricing-api.refinitiv.com",

    "location":[

    "ap-southeast-1a"

    ],

    "port":443,

    "provider":"aws",

    "transport":"websocket"

    },

    {

    "dataFormat":[

    "tr_json2"

    ],

    "endpoint":"apac-3-t3.streaming-pricing-api.refinitiv.com",

    "location":[

    "ap-southeast-1a",

    "ap-southeast-1b"

    ],

    "port":443,

    "provider":"aws",

    "transport":"websocket"

    },

    {

    "dataFormat":[

    "tr_json2"

    ],

    "endpoint":"apac-2-t3.streaming-pricing-api.refinitiv.com",

    "location":[

    "ap-southeast-1b"

    ],

    "port":443,

    "provider":"aws",

    "transport":"websocket"

    },

    {

    "dataFormat":[

    "tr_json2"

    ],

    "endpoint":"emea-1-t3.streaming-pricing-api.refinitiv.com",

    "location":[

    "eu-west-1a"

    ],

    "port":443,

    "provider":"aws",

    "transport":"websocket"

    },

    {

    "dataFormat":[

    "tr_json2"

    ],

    "endpoint":"emea-3-t3.streaming-pricing-api.refinitiv.com",

    "location":[

    "eu-west-1a",

    "eu-west-1b"

    ],

    "port":443,

    "provider":"aws",

    "transport":"websocket"

    },

    {

    "dataFormat":[

    "tr_json2"

    ],

    "endpoint":"emea-2-t3.streaming-pricing-api.refinitiv.com",

    "location":[

    "eu-west-1b"

    ],

    "port":443,

    "provider":"aws",

    "transport":"websocket"

    },

    {

    "dataFormat":[

    "tr_json2"

    ],

    "endpoint":"amer-1-t3.streaming-pricing-api.refinitiv.com",

    "location":[

    "us-east-1a"

    ],

    "port":443,

    "provider":"aws",

    "transport":"websocket"

    },

    {

    "dataFormat":[

    "tr_json2"

    ],

    "endpoint":"amer-3-t3.streaming-pricing-api.refinitiv.com",

    "location":[

    "us-east-1a",

    "us-east-1b"

    ],

    "port":443,

    "provider":"aws",

    "transport":"websocket"

    },

    {

    "dataFormat":[

    "tr_json2"

    ],

    "endpoint":"amer-2-t3.streaming-pricing-api.refinitiv.com",

    "location":[

    "us-east-1b"

    ],

    "port":443,

    "provider":"aws",

    "transport":"websocket"

    }

    ]

    }

    Connecting to WebSocket wss://amer-3-t3.streaming-pricing-api.refinitiv.com:443/WebSocket for session1...

    WebSocket successfully connected for session1!

    SENT on session1:

    {

    "Domain":"Login",

    "ID":1,

    "Key":{

    "Elements":{

    "ApplicationId":"256",

    "AuthenticationToken":"eyJ0eXAiOiJhdCtqd3QiLCJhbGciOiJSUzI1NiIsImtpZCI6ImRMdFd2Q0tCSC1NclVyWm9YMXFod2pZQ2t1eDV0V2ZSS2o4ME9vcjdUY28ifQ.eyJkYXRhIjoie1wiY2lwaGVydGV4dFwiOlwiejE5MHY1RkJMenh2V1JIUVhSaGxVV2dQMXBOSDBXVnVHNVlaaU9qMTRSVnZ4bjQzRDRjb09iR0k0OXJyNEZOa01hZmNKSjU0d2lmLVQ2eHMxR3dxVVhaXzBlQkNIWTNqc2dKa25Qdm0xdFprOWVpb1FvTU1xRkhsVFJ1ckdOZHBuekk1Nk1CSTZlZ1FocmNYcGR2Rk52YnhEVXd6V21zUlZVb3ZWTDJRR2V5LVdXcmV4c0xpdVhXWlVUTXBPTHNqSHBvY2x3bmpOaGlRZmYxZHlVWUFCVlZQRFF3YkNZaDJrZjNqWmh6MkZsUlFRMkRLM3gxd3BBQ2l0YlhWNlBmMkhOT3pFa2NrTU9wUjBqRUYxbE8yT05hV3lhSzdPME1fbjV2eWptTWlpLTBIYzhLSm0xU21kLXlzUEEtYzZLNkxwWG84LVNnUVdRdTU4UGFCUEEzeHFrVVMzbHJzdm5DMy1YdS1mQmhVS1dYVlc2RWpzY1pXN2ZsMUtHaksyWV80QW5XTndPWW8yd3FCNkFVZFVpQ0Z3eG5MNVBTOG42czllTk5pc3M0dDJ3dlc1ckx6VE1rLUhRend0ZllyRG5ickUybnR4VTFjalZHSnBscS0tSVNUeklqUG9TWlJJZy12WTk1SWpGUnRybllSTFYtZDZqNUZpQXpFY0lKMVpmSjV4cGNrYjYwa2hOdkhcIixcIml2XCI6XCJGQWpZR25kTGlXTGtmVVc3XCIsXCJwcm90ZWN0ZWRcIjpcImV5SmhiR2NpT2lKQlYxTmZSVTVEWDFORVMxOUJNalUySWl3aVpXNWpJam9pUVRJMU5rZERUU0lzSW5wcGNDSTZJa1JGUmlKOVwiLFwicmVjaXBpZW50c1wiOlt7XCJlbmNyeXB0ZWRfa2V5XCI6XCJBUUlCQUhpT1JjYVBoX2laM21rakVtUTZBaHpDOWJHeHJJNF9XaFZIWDVPRnI2NTgwUUctc2F3b2h2SFpWeW5FLWJaUm1pSUxBQUFBZmpCOEJna3Foa2lHOXcwQkJ3YWdiekJ0QWdFQU1HZ0dDU3FHU0liM0RRRUhBVEFlQmdsZ2hrZ0JaUU1FQVM0d0VRUU1EenROdHl2cFZXUGx6d2pvQWdFUWdEdnd5NHJGWnR2ZHgtT0hYQnp4M1EwQXd0WFduSzlRVGJZaFBfMXV1MURqMXd6UkF2TzhvLUtfc2JFbTA0bGUzNnVOTUZSX2NBR1B3SHVjbUFcIixcImhlYWRlclwiOntcImtpZFwiOlwiYXJuOmF3czprbXM6dXMtZWFzdC0xOjg5ODA4NDk4NDg3NzprZXkvMWZmZjY3OTMtNjVkZS00N2M0LWI3NjYtNzZjZDNjMTk0ZWYxXCJ9fSx7XCJlbmNyeXB0ZWRfa2V5XCI6XCJBUUlCQUhpT1JjYVBoX2laM21rakVtUTZBaHpDOWJHeHJJNF9XaFZIWDVPRnI2NTgwUUctc2F3b2h2SFpWeW5FLWJaUm1pSUxBQUFBZmpCOEJna3Foa2lHOXcwQkJ3YWdiekJ0QWdFQU1HZ0dDU3FHU0liM0RRRUhBVEFlQmdsZ2hrZ0JaUU1FQVM0d0VRUU1EenROdHl2cFZXUGx6d2pvQWdFUWdEdnd5NHJGWnR2ZHgtT0hYQnp4M1EwQXd0WFduSzlRVGJZaFBfMXV1MURqMXd6UkF2TzhvLUtfc2JFbTA0bGUzNnVOTUZSX2NBR1B3SHVjbUFcIixcImhlYWRlclwiOntcImtpZFwiOlwiYXJuOmF3czprbXM6dXMtZWFzdC0xOjg5ODA4NDk4NDg3NzprZXkvMWZmZjY3OTMtNjVkZS00N2M0LWI3NjYtNzZjZDNjMTk0ZWYxXCJ9fSx7XCJlbmNyeXB0ZWRfa2V5XCI6XCJBUUlDQUhoTEc2NThfMnFnUkxEZXBsdC1LVjkxUC0yUVJIcmNLUzF2cjdyM1dyWkI5Z0h0OENjT0hTajFPZE94dm9VWDJDa1NBQUFBZmpCOEJna3Foa2lHOXcwQkJ3YWdiekJ0QWdFQU1HZ0dDU3FHU0liM0RRRUhBVEFlQmdsZ2hrZ0JaUU1FQVM0d0VRUU0zbld5VzlodmNsU3JIRk5GQWdFUWdEdU9SX0VhWkZZWEoyTTl5MDZqRlJZNE1wWTRCZnFEWlo2UXp3dDNScjJXZEpNSTBCVTg4b3Z3WThPUXlKNEFPTWlmWlhsNjNpZGxQbzZ2TndcIixcImhlYWRlclwiOntcImtpZFwiOlwiYXJuOmF3czprbXM6YXAtc291dGhlYXN0LTE6ODk4MDg0OTg0ODc3OmtleS9lNDg3MGIxYy05Y2M3LTQ0NzgtYjk1MC1jNTY1OWI1YzU2OGZcIn19XSxcInRhZ1wiOlwiMjJoYnQtbDdKbThrS0htdVMtbDh3QVwifSIsInJzMSI6ImI3YjMxYTdiNjliOTZkN2ZlODk5NGZhMTczMWYwYzNjZjNkZDFmNTQiLCJhdWQiOiJjNzhhYjI2MGQxZWQ0ZWU3YmM3OTI5MjNkNDA2MjBhNDY3NzQ2MDg4IiwiaXNzIjoiaHR0cHM6Ly9maW5hbmNpYWwudGhvbXNvbnJldXRlcnMuY29tL2FwaS9pZGVudGl0eS9zdHNfcHJvZCIsImV4cCI6MTYxOTYzMTE1MSwiaWF0IjoxNjE5NjMwODUxfQ.N5rqRaXjG2g3NJKr6J95r8RUzDkkt1OlVcA6hfbYpxVFMDJzSyAmzF8fVyHXrJcel5vgripplrVH3ijsvJrRukHbSiVIahCxa7bj-_uwzqYVYHwrrLJtPpVA0zV322X9FV3nTrZ-4vlhLV_7TrFAMmc055fFSlwgkgHHG5WmlLnviUxto3Uq4Gi3V31a1Y6u_JHu7NKzjxMLTbUE-EA43FQ2DQLrQYqUnAhFrbj_19i02LpAQBklYQEvMmp5OblrsKTbgn2YexunWmOM0K5w0waKFFNHDcfbbFlpYF6Rk72DVl3H0E5u9QK4dGbeIjMU1WoAPDqwi-YiBFZlC7ix-w",

    "Position":"192.168.0.124/CHDPQM433LT"

    },

    "NameType":"AuthnToken"

    }

    }

    RECEIVED on session1:

    [

    {

    "Domain":"Login",

    "Elements":{

    "MaxMsgSize":61426,

    "PingTimeout":30

    },

    "ID":1,

    "Key":{

    "Elements":{

    "AllowSuspectData":1,

    "ApplicationId":"256",

    "ApplicationName":"ADS",

    "AuthenticationErrorCode":0,

    "AuthenticationErrorText":{

    "Data":null,

    "Type":"AsciiString"

    },

    "AuthenticationTTReissue":1619631151,

    "Position":"192.168.0.124/CHDPQM433LT",

    "ProvidePermissionExpressions":1,

    "ProvidePermissionProfile":0,

    "SingleOpen":1,

    "SupportBatchRequests":7,

    "SupportEnhancedSymbolList":1,

    "SupportOMMPost":1,

    "SupportOptimizedPauseResume":0,

    "SupportPauseResume":0,

    "SupportStandby":0,

    "SupportViewRequests":1

    },

    "Name":"AQIC5wM2LY4SfcyFLEGYzmFed6loCa8Xp8PsxdJrF%2F5gvlI%3D%40AAJTSQACMjAAAlNLABI2MjIxODE2NTQ5MDgzODE5MjUAAlMxAAIzMg%3D%3D%23"

    },

    "State":{

    "Data":"Ok",

    "Stream":"Open",

    "Text":"Login accepted by host ads-fanout-lrg-az1-use1-prd."

    },

    "Type":"Refresh"

    }

    ]

    RECEIVED on session1:

    [

    {

    "Type":"Ping"

    }

    ]

    SENT on session1:

    {

    "Type":"Pong"

    }

  • def _send_market_price_request(self, ric_name):

    """ Create and send simple Market Price request """

    mp_req_json = {

    'ID': 2,

    'Key': {

    #'Name': ric_name,

    #'Name': 'IBM.N',

    'Name': '/IBM.N',

    'Service': service

    },

    "Streaming":false

    }

    self.web_socket_app.send(json.dumps(mp_req_json))

    print("SENT on " + self.session_name + ":")

    print(json.dumps(mp_req_json, sort_keys=True, indent=2, separators=(',', ':')))

  • I don't see the request being sent to server - there is probably a bug in the your python code somewhere. Please recheck the code - maybe add debugging statements.

  • Snapshot works with 'Streaming':False set:) The "Streaming":false was cut/paste from Refinitiv how to example snippets. Anyway, happy that this is identified/resolved. Thank you for your help again.


  • Good that it works now.

    Refinitiv examples show the JSON messages - where false is a correct directive. If you use Python dictionary, then Python False will have to be used.

    json.dumps(mp_req_json)

    The above statement converts the dictionary object into JSON string in the self.web_socket_app.send(json.dumps(mp_req_json)) statement.