TsgcWebSocketClient › Propriedades › QueueOptions
Enfileira mensagens Text, Binary e Ping de saída para que sejam serializadas na thread da conexão.
property QueueOptions: TsgcWSQueueClient_Options read FQueueOptions write SetQueueOptions;
Text.Level=qmNone, Binary.Level=qmNone, Ping.Level=qmNone, MaxQueueSize=0, OverflowPolicy=qopDropOldest
Por padrão, as mensagens são gravadas diretamente na thread chamadora. Atribuir um nível de queue (qmLevel1, qmLevel2 ou qmLevel3) as enfileira e as envia sequencialmente a partir da thread de conexão, evitando locks quando várias threads chamam WriteData ou Ping ao mesmo tempo. As mensagens em qmLevel1 são processadas antes de qmLevel2, e qmLevel2 antes de qmLevel3, de modo que categorias de maior prioridade (por exemplo, ping) possam ser entregues antes dos payloads.
MaxQueueSize limita o número de mensagens que uma fila pode conter: zero (padrão) significa sem limite, mantendo o comportamento anterior. Quando o limite é atingido, OverflowPolicy decide o que acontece com as novas mensagens: qopDropOldest (padrão) descarta a mensagem enfileirada mais antiga para abrir espaço, qopDropNewest descarta a nova mensagem e qopDisconnect a descarta e fecha a conexão. Cada vez que o limite é atingido, o evento OnSendBufferFull é disparado primeiro, permitindo que a aplicação monitore backpressure ou anule o descarte.
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;