Containers in websocket messages
Hi,
i try to write a C# library for handle the "tr_json2" protokoll. Priviously I had writen a C++/cli-wrapper with Realtime C++ API (EMA) to implement a "MarketPrice -Modell" for substituting SFC-COM.
Back to the problem. Realtime C++ API defines a payload at the message-class to handle additional/variant data. In the websocket-api documentation i didn't found specific information wich messages should be to take containers like a payload. Some Messages has explicit implimentations of a container. E.g Post-Message has a Message Container. Most other messages I didn't found explizit informations.
The exakt Question now is: Does only Update-, Status- and Refresh-Message have container(s), or any message (Including Ack-, Close- und Error-Message) could have one or more containers at the top OMM-Level?
Regards,
Reinhold
Find more posts tagged with
The following is a Post message that contains an Update message.
{
"Ack": true,
"ID": 1,
"Key": {
"Name": "{{POST_ITEM}}",
"Service": "{{POST_SERVICE}}"
},
"Message": {
"Fields": {
"ASK": 452.60,
"PRIMACT_1": 451.3,
"SEC_ACT_1": 451.3,
"BID": 452.55
},
"ID": 0,
"Type": "Update"
},
"PostID": 10,
"Type": "Post"
}
The following is a Post message that contains a Field List container.
{
"Ack": true,
"ID": 1,
"Key": {
"Name": "{{POST_ITEM}}",
"Service": "{{POST_SERVICE}}"
},
"Fields": {
"ASK": 452.60,
"PRIMACT_1": 451.3,
"SEC_ACT_1": 451.3,
"BID": 452.55
},
"PostID": 10,
"Type": "Post"
}
These are off-stream post messages that send post messages through the login stream ("ID": 1).
I sent these post messages to RTDS cache.
A consumer will retrieve the data in the update message.
{
"ID": 3,
"Type": "Update",
"UpdateType": "Unspecified",
"Key": {
"Service": "DIST_CACHE",
"Name": "TEST.BK"
},
"PostUserInfo": {
"Address": "0.0.0.0",
"UserID": 0
},
"Fields": {
"ASK": 452.60,
"PRIMACT_1": 451.3,
"SEC_ACT_1": 451.3,
"BID": 452.55
}
}
The following is a Post message that contains an Update message.
{
"Ack": true,
"ID": 1,
"Key": {
"Name": "{{POST_ITEM}}",
"Service": "{{POST_SERVICE}}"
},
"Message": {
"Fields": {
"ASK": 452.60,
"PRIMACT_1": 451.3,
"SEC_ACT_1": 451.3,
"BID": 452.55
},
"ID": 0,
"Type": "Update"
},
"PostID": 10,
"Type": "Post"
}
The following is a Post message that contains a Field List container.
{
"Ack": true,
"ID": 1,
"Key": {
"Name": "{{POST_ITEM}}",
"Service": "{{POST_SERVICE}}"
},
"Fields": {
"ASK": 452.60,
"PRIMACT_1": 451.3,
"SEC_ACT_1": 451.3,
"BID": 452.55
},
"PostID": 10,
"Type": "Post"
}
These are off-stream post messages that send post messages through the login stream ("ID": 1).
I sent these post messages to RTDS cache.
A consumer will retrieve the data in the update message.
{
"ID": 3,
"Type": "Update",
"UpdateType": "Unspecified",
"Key": {
"Service": "DIST_CACHE",
"Name": "TEST.BK"
},
"PostUserInfo": {
"Address": "0.0.0.0",
"UserID": 0
},
"Fields": {
"ASK": 452.60,
"PRIMACT_1": 451.3,
"SEC_ACT_1": 451.3,
"BID": 452.55
}
}
@Reinhold.Blank
Thanks for reaching out to us.
The WebSocket API applies the Refinitiv Open Message Model. The topmost level is a message. Each message contains a payload. A payload can contain another message or a container.
The usages of messages are defined in the Refinitiv Domain Model. For example, each Refresh and Update message of the Market Price domain contains a Field List in its payload.
Therefore, you need to follow the specifications defined in the Refinitiv Domain Model. Typically, the Close and Ack messages don't use payload.
Hello @Reinhold.Blank
You can find the Refinitiv Domain Model resources in the following documents: