Login Page - Create Account

Support Board


Date/Time: Fri, 27 Jan 2023 18:22:24 +0000



DTC Protocol - JSON heartbeat (ping client->server) - bug?

View Count: 266

[2022-12-21 22:34:24]
User5044343 - Posts: 43
I'm sending a heartbeat(ping) back to the server - Sierra logs confirm that - but it doesn't register as a heartbeat and times out after 60 sec.
Data flows to the client fine. I have the null terminator at the end of the json as well.

(PHP)

$msg = '{"Type":3}'."\0";
$conn2->send($msg);


DTC Protocol server | Incoming connection from 10.70.70.72. | 2022-12-16 05:23:09.976
DTC client #37. 10.70.70.72 (4) | Creating socket. | 2022-12-16 05:23:09.979
DTC client #37. 10.70.70.72 (4) | New receive buffer size: 262144 | 2022-12-16 05:23:09.979
DTC client #37. 10.70.70.72 (4) | Allocated send buffers: 32 of 131072 bytes. | 2022-12-16 05:23:09.980
WSServer | DTC client #37. 10.70.70.72 (4) | Start Server | 2022-12-16 05:23:09.981
WSServer | DTC client #37. 10.70.70.72 (4) | Switch to HANDSHAKE | 2022-12-16 05:23:09.981
WSServer | DTC client #37. 10.70.70.72 (4) | Switch to READY_DATA | 2022-12-16 05:23:09.981
WSServer | DTC client #37. 10.70.70.72 (4) | Response HANDSHAKE with status code 101 | 2022-12-16 05:23:09.981
JSON data: {"Type":1,"HeartbeatIntervalInSeconds":5,"TradeMode":1,"Username": xxx"Password": "xxx","ClientName":"trades"} | 2022-12-16 05:23:09.985
DTC client #37. 10.70.70.72 | Requested heartbeat interval: 5 | 2022-12-16 05:23:09.987
DTC client #37. trades. 10.70.70.72 | Received logon request. | 2022-12-16 05:23:09.987
DTC client #37. trades. 10.70.70.72 | Sent successful Logon response message to client. Username: xxx. Result text: Connected to SC DTC Protocol server. Service=sc_futures_direct.dtc.trading|SymbolSettings=sc_futures_direct.dtc.trading | 2022-12-16 05:23:09.987
JSON data: {"Type":3} | 2022-12-16 05:23:10.981
JSON data: {"Type":3} | 2022-12-16 05:23:15.983
JSON data: {"Type":3} | 2022-12-16 05:23:20.988
JSON data: {"Type":3} | 2022-12-16 05:23:25.992
JSON data: {"Type":3} | 2022-12-16 05:23:30.996
JSON data: {"Type":3} | 2022-12-16 05:23:36.000
JSON data: {"Type":3} | 2022-12-16 05:23:41.003
JSON data: {"Type":3} | 2022-12-16 05:23:46.012
WSServer | DTC client #37. 10.70.70.72 (4) | Timeout waiting for ping message from client. | 2022-12-16 05:23:49.986
WSServer | DTC client #37. 10.70.70.72 (4) | Delay close connection now | 2022-12-16 05:23:50.005
DTC client #37. 10.70.70.72 (4) | CloseSocket call. | 2022-12-16 05:23:50.005
DTC client #37. 10.70.70.72 (4) | Max send buffers used during socket life: 3 | 2022-12-16 05:23:50.005
DTC client #37. 10.70.70.72 (4) | Max send buffer size during socket life: 14174 | 2022-12-16 05:23:50.005
DTC client #37. 10.70.70.72 (4) | Shutdown started. Waiting for graceful close. | 2022-12-16 05:23:50.005
DTC client #37. 10.70.70.72 (4) | Socket gracefully closed by remote side. | 2022-12-16 05:23:50.005
DTC client #37. 10.70.70.72 (4) | Closed. | 2022-12-16 05:23:50.005
Deleting individual DTC server: DTC client #37. trades. 10.70.70.72 | 2022-12-16 05:23:50.999
DTC server: DTC client #37. trades. 10.70.70.72 successfully deleted. | 2022-12-16 05:23:51.002
[2022-12-22 01:31:18]
Sierra_Chart Engineering - Posts: 6349
This is completely unrelated to a DTC protocol heartbeat:

WSServer | DTC client #37. 10.70.70.72 (4) | Timeout waiting for ping message from client. | 2022-12-16 05:23:49.986
WSServer | DTC client #37. 10.70.70.72 (4) | Delay close connection now | 2022-12-16 05:23:50.005
This is the failure for the websocket client to be sending through a websocket ping.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, use the Teton service:
Sierra Chart Teton Futures Order Routing
Date Time Of Last Edit: 2022-12-22 01:31:32
[2022-12-22 02:36:00]
User5044343 - Posts: 43

$ping = new Frame('', true, Frame::OP_PING);
$conn2->send($ping);

That fixed it. Thank you. No more disconnects.

Follow up question.
I'm sending 300, 601, 400 and 305 messages yet I'm not getting a response on most of the requests. Position and Balance request come in only if there is an open position and the price changes to affect the open P&L.
Date Time Of Last Edit: 2022-12-22 02:36:24
[2022-12-22 02:48:33]
Sierra_Chart Engineering - Posts: 6349
We do not know from memory, what those messages are. Best to give the names of them.

Did you also enable Global Settings >> Sierra Chart Server Settings >> DTC Protocol Server >> Allow Trading.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, use the Teton service:
Sierra Chart Teton Futures Order Routing
[2022-12-22 03:01:22]
User5044343 - Posts: 43
Here are the names:
OPEN_ORDERS_REQUEST - 300
ACCOUNT_BALANCE_REQUEST - 601
TRADE_ACCOUNTS_REQUEST - 400
CURRENT_POSITIONS_REQUEST - 305

Allow Trading - is set to a green "YES"

I'm running 2458
Date Time Of Last Edit: 2022-12-22 03:01:57
[2022-12-22 14:14:59]
Sierra_Chart Engineering - Posts: 6349
You absolutely should get a response for all of those requests.

Even if it is a rejection message.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, use the Teton service:
Sierra Chart Teton Futures Order Routing
Date Time Of Last Edit: 2022-12-22 14:15:10
[2022-12-22 23:17:30]
User5044343 - Posts: 43
My mistake again - was sending \n instead of \0 for termination. All issues resolved. No bugs with sierra :)
[2023-01-23 17:39:46]
User230940 - Posts: 81
Hello,

I am trying to implement my necessary DTC Communication in Perl. And I am failed on the missing heartbeat within 20 seconds.


$ping = new Frame('', true, Frame::OP_PING);

I expect the $PING is a JSON Format Value, what content is it?

If I would write it be text, what do I have to send as Heartbeat?

Thanks
best regards
Carsten
[2023-01-23 18:23:33]
User230940 - Posts: 81
I add something during initiation of the connection:

connection init
$client->send_text_frame(
encode_json {
Type=>1,
ProtocolVersion=>8,
HeartbeatIntervalInSeconds=>120,
ClientName=>'Client'
}
);
}

DTC Protocol server | Incoming connection from 192.168.17.201. | 2023-01-23 19:01:31.248
DTC client #20. 192.168.17.201 (2) | Creating socket. | 2023-01-23 19:01:31.251
DTC client #20. 192.168.17.201 (2) | New receive buffer size: 262144 | 2023-01-23 19:01:31.251
DTC client #20. 192.168.17.201 (2) | Allocated send buffers: 32 of 131072 bytes. | 2023-01-23 19:01:31.252
WSServer | DTC client #20. 192.168.17.201 (2) | Start Server | 2023-01-23 19:01:31.252
WSServer | DTC client #20. 192.168.17.201 (2) | Switch to HANDSHAKE | 2023-01-23 19:01:31.252
WSServer | DTC client #20. 192.168.17.201 (2) | Switch to READY_DATA | 2023-01-23 19:01:31.252
WSServer | DTC client #20. 192.168.17.201 (2) | Response HANDSHAKE with status code 101 | 2023-01-23 19:01:31.252
JSON data: {"HeartbeatIntervalInSeconds":120,"ProtocolVersion":8,"Type":1,"ClientName":"Client"} | 2023-01-23 19:01:31.260

DTC client #20. 192.168.17.201 | No heartbeat received after 20s. Closing network socket. Bytes in receive buffer: 0 | 2023-01-23 19:01:51.748
DTC client #20. 192.168.17.201 (2) | CloseSocket call. | 2023-01-23 19:01:51.748


I think request for inititiation the Connection does not take place. The heartbeat interval is not changed.

Do I have to change / add something to my init JSON String?

tbanks
[2023-01-23 18:38:23]
Sierra_Chart Engineering - Posts: 6349
We definitely do not recommend a heartbeat interval of 120 seconds. It should be about 20 seconds.

First resolve that.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, use the Teton service:
Sierra Chart Teton Futures Order Routing
[2023-01-23 18:40:27]
User230940 - Posts: 81
This is only for testing if my send JSON does change anything. Yes, of I will use 5 sec instead.
[2023-01-23 18:45:11]
User230940 - Posts: 81
5 or 0 sec. It is not important to me.


JSON data: {"HeartbeatIntervalInSeconds":18,"ProtocolVersion":8,"Type":1,"ClientName":"Client"} | 2023-01-23 19:41:31.260

DTC client #20. 192.168.17.201 | No heartbeat received after 20s. Closing network socket. Bytes in receive buffer: 0 | 2023-01-23 19:41:51.748
DTC client #20. 192.168.17.201 (2) | CloseSocket call. | 2023-01-23 19401:51.748

I changed it to 18 sec, but still the same of course.
[2023-01-24 08:06:19]
User230940 - Posts: 81
Hello,

got success:

(I use Perl )
Now I send for Logon

$client->send_text_frame("{\"Type\":1,\"HeartbeatIntervalInSeconds\":18,\"ClientName\":\"DTC4FMA\"}\0");

with result on Server:

DTC client #11. 192.168.17.201 (3) | New receive buffer size: 262144 | 2023-01-24 08:50:05.437
DTC client #11. 192.168.17.201 (3) | Allocated send buffers: 32 of 131072 bytes. | 2023-01-24 08:50:05.438
WSServer | DTC client #11. 192.168.17.201 (3) | Start Server | 2023-01-24 08:50:05.439
WSServer | DTC client #11. 192.168.17.201 (3) | Switch to HANDSHAKE | 2023-01-24 08:50:05.439
WSServer | DTC client #11. 192.168.17.201 (3) | Switch to READY_DATA | 2023-01-24 08:50:05.439
WSServer | DTC client #11. 192.168.17.201 (3) | Response HANDSHAKE with status code 101 | 2023-01-24 08:50:05.439
JSON data: {"Type":1,"HeartbeatIntervalInSeconds":18,"ClientName":"DTC4FMA"} | 2023-01-24 08:50:05.448
DTC client #11. 192.168.17.201 | Requested heartbeat interval: 18 | 2023-01-24 08:50:05.451
DTC client #11. DTC4FMA. 192.168.17.201 | Received logon request. | 2023-01-24 08:50:05.451
DTC client #11. 192.168.17.201 (3) | Send: {"Type":2,"ProtocolVersion":8,"Result":1,"Integer_1":0,"MarketDepthUpdatesBestBidAndAsk":0,"TradingIsSupported":1,"OCOOrdersSupported":1,"OrderCancelReplaceSupported":1,"SecurityDefinitionsSupported":1,"HistoricalPriceDataSupported":0,"ResubscribeWhenMarketDataFeedAvailable":0,"MarketDepthIsSupported":1,"OneHistoricalPriceDataRequestPerConnection":0,"BracketOrdersSupported":1,"UsesMultiplePositionsPerSymbolAndTradeAccount":0,"MarketDataSupported":1,"ResultText":"Connected to SC DTC Protocol server. Service=cqg|SymbolSettings=cqg","ReconnectAddress":"","ServerName":"SC DTC Server. Build=44247","SymbolExchangeDelimiter":""} | 2023-01-24 08:50:05.451
DTC client #11. DTC4FMA. 192.168.17.201 | Sent successful Logon response message to client. Username: . Result text: Connected to SC DTC Protocol server. Service=cqg|SymbolSettings=cqg | 2023-01-24 08:50:05.451

On my Client I see the return as successful Logon (perfect):

{
'MarketDepthIsSupported' => 1,
'BracketOrdersSupported' => 1,
'ReconnectAddress' => '',
'MarketDepthUpdatesBestBidAndAsk' => 0,
'OCOOrdersSupported' => 1,
'Integer_1' => 0,
'UsesMultiplePositionsPerSymbolAndTradeAccount' => 0,
'HistoricalPriceDataSupported' => 0,
'ServerName' => 'SC DTC Server. Build=44247',
'SymbolExchangeDelimiter' => '',
'ResubscribeWhenMarketDataFeedAvailable' => 0,
'SecurityDefinitionsSupported' => 1,
'ResultText' => 'Connected to SC DTC Protocol server. Service=cqg|SymbolSettings=cqg',
'OneHistoricalPriceDataRequestPerConnection' => 0,
'OrderCancelReplaceSupported' => 1,
'Type' => 2,
'TradingIsSupported' => 1,
'Result' => 1,
'MarketDataSupported' => 1,
'ProtocolVersion' => 8
};

Additionally I see the heartbeat request Type 3 which comes JSON Compact encoded.


{
'Type' => 3,
'F' => [
0,
1674546515,
0,
0,
0,
0,
'1674546514862035',
0,
762,
0,
0,
3232239923
]
};


What do I have to answer on the heartbeat request? Do I have to answer in JSON Compact Encoding too?

Thanks for help
[2023-01-24 20:12:59]
User230940 - Posts: 81
Hello,

could it be enough to send the following JSON Frame?

{type:3}\0

I have not tested until now, but I read in the Documentation:

There are no required member fields to set in this message. The purpose of the HEARTBEAT message is so that the Client or the Server can determine whether the other side is still connected.

But this is the starting point of this thread?

Thanks for your feedback
regards
[2023-01-25 12:17:06]
User230940 - Posts: 81
Hello,

my heartbeat fails always.

I send:

Actual DateTime in Miliseconds: 1674647806

My Connection request is as follows: Which works

{"Type":1,"HeartbeatIntervalInSeconds":18,"ClientName":"DTC4FMA"}\0




[b]Heartbeat as JSON Compact[/b]
{"Type":3,"F":"[0,1674647806]"}\0

WSServer | DTC client #9. 192.168.17.201 (1) | Response HANDSHAKE with status code 101 | 2023-01-25 12:52:54.122
JSON data: {"Type":1,"HeartbeatIntervalInSeconds":18,"ClientName":"DTC4FMA"} | 2023-01-25 12:52:54.154
DTC client #9. 192.168.17.201 | Requested heartbeat interval: 18 | 2023-01-25 12:52:54.158
DTC client #9. DTC4FMA. 192.168.17.201 | Received logon request. | 2023-01-25 12:52:54.158
DTC client #9. 192.168.17.201 (1) | Send: {"Type":2,"ProtocolVersion":8,"Result":1,"Integer_1":0,"MarketDepthUpdatesBestBidAndAsk":0,"TradingIsSupported":1,"OCOOrdersSupported":1,"OrderCancelReplaceSupported":1,"SecurityDefinitionsSupported":1,"HistoricalPriceDataSupported":0,"ResubscribeWhenMarketDataFeedAvailable":0,"MarketDepthIsSupported":1,"OneHistoricalPriceDataRequestPerConnection":0,"BracketOrdersSupported":1,"UsesMultiplePositionsPerSymbolAndTradeAccount":0,"MarketDataSupported":1,"ResultText":"Connected to SC DTC Protocol server. Service=cqg|SymbolSettings=cqg","ReconnectAddress":"","ServerName":"SC DTC Server. Build=44247","SymbolExchangeDelimiter":""} | 2023-01-25 12:52:54.158
DTC client #9. DTC4FMA. 192.168.17.201 | Sent successful Logon response message to client. Username: . Result text: Connected to SC DTC Protocol server. Service=cqg|SymbolSettings=cqg | 2023-01-25 12:52:54.158
JSON data: {"Type":3","F":[0,1674647578]} | 2023-01-25 12:52:59.190
JSON data: {"Type":3","F":[0,1674647583]} | 2023-01-25 12:53:04.266
JSON data: {"Type":3","F":[0,1674647588]} | 2023-01-25 12:53:09.262
DTC client #9. 192.168.17.201 (1) | Send: {"Type":3,"F":[0,1674647592,3,0,0,0,1674647592363376,0,762,0,0,3232239923]} | 2023-01-25 12:53:12.363
JSON data: {"Type":3","F":[0,1674647593]} | 2023-01-25 12:53:14.135
JSON data: {"Type":3","F":[0,1674647598]} | 2023-01-25 12:53:19.168
JSON data: {"Type":3","F":[0,1674647603]} | 2023-01-25 12:53:24.161
JSON data: {"Type":3","F":[0,1674647608]} | 2023-01-25 12:53:29.156
DTC client #9. 192.168.17.201 (1) | Send: {"Type":3,"F":[0,1674647610,1,0,0,0,1674647610473615,0,845,0,0,3232239923]} | 2023-01-25 12:53:30.473
JSON data: {"Type":3","F":[0,1674647613]} | 2023-01-25 12:53:34.154
WSServer | DTC client #9. 192.168.17.201 (1) | Timeout waiting for ping message from client. | 2023-01-25 12:53:34.459

or

[b]Heartbeat as JSON[/b]
{"Type":3,"NumDroppedMessages":0,"CurrentDateTime":1674647806}\0

WSServer | DTC client #10. 192.168.17.201 (1) | Response HANDSHAKE with status code 101 | 2023-01-25 12:56:26.599
JSON data: {"Type":1,"HeartbeatIntervalInSeconds":18,"ClientName":"DTC4FMA"} | 2023-01-25 12:56:26.610
DTC client #10. 192.168.17.201 | Requested heartbeat interval: 18 | 2023-01-25 12:56:26.613
DTC client #10. DTC4FMA. 192.168.17.201 | Received logon request. | 2023-01-25 12:56:26.613
DTC client #10. 192.168.17.201 (1) | Send: {"Type":2,"ProtocolVersion":8,"Result":1,"Integer_1":0,"MarketDepthUpdatesBestBidAndAsk":0,"TradingIsSupported":1,"OCOOrdersSupported":1,"OrderCancelReplaceSupported":1,"SecurityDefinitionsSupported":1,"HistoricalPriceDataSupported":0,"ResubscribeWhenMarketDataFeedAvailable":0,"MarketDepthIsSupported":1,"OneHistoricalPriceDataRequestPerConnection":0,"BracketOrdersSupported":1,"UsesMultiplePositionsPerSymbolAndTradeAccount":0,"MarketDataSupported":1,"ResultText":"Connected to SC DTC Protocol server. Service=cqg|SymbolSettings=cqg","ReconnectAddress":"","ServerName":"SC DTC Server. Build=44247","SymbolExchangeDelimiter":""} | 2023-01-25 12:56:26.613
DTC client #10. DTC4FMA. 192.168.17.201 | Sent successful Logon response message to client. Username: . Result text: Connected to SC DTC Protocol server. Service=cqg|SymbolSettings=cqg | 2023-01-25 12:56:26.613
JSON data: {"Type":3,"NumDroppedMessages":0,"CurrentDateTime":1674647791} | 2023-01-25 12:56:31.614
JSON data: {"Type":3,"NumDroppedMessages":0,"CurrentDateTime":1674647796} | 2023-01-25 12:56:36.623
JSON data: {"Type":3,"NumDroppedMessages":0,"CurrentDateTime":1674647801} | 2023-01-25 12:56:41.613
DTC client #10. 192.168.17.201 (1) | Send: {"Type":3,"F":[0,1674647805,3,0,0,0,1674647805120806,0,762,0,0,3232239923]} | 2023-01-25 12:56:45.120
JSON data: {"Type":3,"NumDroppedMessages":0,"CurrentDateTime":1674647806} | 2023-01-25 12:56:46.634
JSON data: {"Type":3,"NumDroppedMessages":0,"CurrentDateTime":1674647811} | 2023-01-25 12:56:51.744
JSON data: {"Type":3,"NumDroppedMessages":0,"CurrentDateTime":1674647816} | 2023-01-25 12:56:56.630
JSON data: {"Type":3,"NumDroppedMessages":0,"CurrentDateTime":1674647821} | 2023-01-25 12:57:01.626
DTC client #10. 192.168.17.201 (1) | Send: {"Type":3,"F":[0,1674647823,1,0,0,0,1674647823078658,0,845,0,0,3232239923]} | 2023-01-25 12:57:03.078
JSON data: {"Type":3,"NumDroppedMessages":0,"CurrentDateTime":1674647826} | 2023-01-25 12:57:06.634
WSServer | DTC client #10. 192.168.17.201 (1) | Timeout waiting for ping message from client. | 2023-01-25 12:57:07.277
WSServer | DTC client #10. 192.168.17.201 (1) | Delay close connection now | 2023-01-25 12:57:07.664

All without any change, the connection will be closed because of missing heartbeat.


Can you please tell me what I have to send to send a valid heartbeat?

Do I have to answer on the Heartbeat send by the server? Or can I send the heartbeart regularly, like I did up to now?

thanks in advance
regards
[2023-01-25 15:12:27]
Sierra_Chart Engineering - Posts: 6349
Yes:
Or can I send the heartbeart regularly, like I did up to now?

Now that we look more closely at this log the problem is not the heartbeat but the websocket ping:

WSServer | DTC client #10. 192.168.17.201 (1) | Timeout waiting for ping message from client. | 2023-01-25 12:57:07.277

Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, use the Teton service:
Sierra Chart Teton Futures Order Routing
Date Time Of Last Edit: 2023-01-25 15:12:41
[2023-01-25 15:15:03]
Sierra_Chart Engineering - Posts: 6349
Yes it should be:
could it be enough to send the following JSON Frame?

{type:3}\0

Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, use the Teton service:
Sierra Chart Teton Futures Order Routing
[2023-01-25 15:24:56]
User230940 - Posts: 81
Do I have to send an additional Websocket ping to the DTC Server?
[2023-01-25 15:26:21]
Sierra_Chart Engineering - Posts: 6349
Yes that is certainly required by the websocket protocol.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, use the Teton service:
Sierra Chart Teton Futures Order Routing
[2023-01-25 15:28:50]
User230940 - Posts: 81
Than the heartbeat Type 3 is not necessary for a Websocket connection, only a Websocket ping?
[2023-01-25 15:35:08]
User230940 - Posts: 81
Do you have a documentation on what is required by the DTC Server.

Now I send a ping every 5 seconds.

Now I will be disconnected a bit latest.

Now with the Message the PONG Message is missing.

regards
[2023-01-25 17:33:08]
User230940 - Posts: 81
Hello,


Actually I send every five seconds a ping and a pong and the Type 3 Message and this seams to work.

Up to now it is not nice, but it works for the moment.

Do you have documentation on the WebSocket Communication? PIng and Pong requirement?

thanks
[2023-01-26 18:19:19]
Sierra_Chart Engineering - Posts: 6349
Regarding post #20 you need both. You need the DTC protocol heartbeat message to be sent about every 20 seconds and you need the websocket Ping message according to the websocket specifications which we do not publish.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, use the Teton service:
Sierra Chart Teton Futures Order Routing
[2023-01-26 18:23:42]
User230940 - Posts: 81
Thanks, I got it working.

regards

To post a message in this thread, you need to log in with your Sierra Chart account:

Login

Login Page - Create Account