TsgcWebSocketClient › Properties › QueueOptions
Plaatst uitgaande tekst-, binaire en ping-berichten in de wachtrij zodat ze worden geserialiseerd op de verbindingsthread.
property QueueOptions: TsgcWSQueueClient_Options read FQueueOptions write SetQueueOptions;
Text.Level=qmNone, Binary.Level=qmNone, Ping.Level=qmNone, MaxQueueSize=0, OverflowPolicy=qopDropOldest
Standaard worden berichten rechtstreeks geschreven op de aanroepende thread. Het toewijzen van een wachtrijniveau (qmLevel1, qmLevel2 of qmLevel3) plaatst ze in de wachtrij en verzendt ze sequentieel vanuit de verbindingsthread, waardoor vergrendelingen worden vermeden wanneer meerdere threads WriteData of Ping tegelijk aanroepen. Berichten op qmLevel1 worden verwerkt vóór qmLevel2, en qmLevel2 vóór qmLevel3, zodat categorieën met hogere prioriteit (bijvoorbeeld ping) kunnen worden bezorgd vóór payloads.
MaxQueueSize begrenst het aantal berichten dat een wachtrij mag bevatten: nul (standaard) betekent onbegrensd, waardoor het eerdere gedrag behouden blijft. Wanneer de limiet is bereikt, beslist OverflowPolicy wat er met nieuwe berichten gebeurt: qopDropOldest (standaard) verwerpt het oudste bericht in de wachtrij om ruimte te maken, qopDropNewest verwerpt het nieuwe bericht en qopDisconnect verwerpt het en sluit de verbinding. Telkens wanneer de limiet wordt bereikt, wordt eerst de gebeurtenis OnSendBufferFull geactiveerd, zodat de toepassing tegendruk kan bewaken of het verwerpen kan overschrijven.
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;