TsgcWebSocketClientProprietà › QueueOptions

QueueOptions Property

Mette in coda i messaggi in uscita di tipo Text, Binary e Ping in modo che vengano serializzati sul thread della connessione.

Sintassi

property QueueOptions: TsgcWSQueueClient_Options read FQueueOptions write SetQueueOptions;

Valore predefinito

Text.Level=qmNone, Binary.Level=qmNone, Ping.Level=qmNone, MaxQueueSize=0, OverflowPolicy=qopDropOldest

Note

Per impostazione predefinita, i messaggi vengono scritti direttamente nel thread chiamante. L'assegnazione di un livello di coda (qmLevel1, qmLevel2 o qmLevel3) li mette in coda e li invia sequenzialmente dal thread di connessione, evitando blocchi quando più thread chiamano WriteData o Ping contemporaneamente. I messaggi a qmLevel1 vengono elaborati prima di qmLevel2, e qmLevel2 prima di qmLevel3, in modo che le categorie con priorità più alta (ad esempio ping) possano essere consegnate prima dei payload.

MaxQueueSize limita il numero di messaggi che una coda può contenere: zero (predefinito) significa illimitato, mantenendo il comportamento precedente. Quando il limite viene raggiunto, OverflowPolicy decide cosa accade con i nuovi messaggi: qopDropOldest (predefinito) scarta il messaggio accodato più vecchio per fare spazio, qopDropNewest scarta il nuovo messaggio e qopDisconnect lo scarta e chiude la connessione. Ogni volta che il limite viene raggiunto, viene prima generato l'evento OnSendBufferFull, consentendo all'applicazione di monitorare la contropressione o di annullare lo scarto.

Esempio


oClient := TsgcWebSocketClient.Create(nil);
oClient.URL := 'wss://www.esegece.com:2053';
oClient.QueueOptions.Ping.Level := qmLevel1;
oClient.QueueOptions.Text.Level := qmLevel2;
oClient.QueueOptions.Binary.Level := qmLevel2;
oClient.Active := true;

Torna alle Proprietà