TsgcWebSocketClientProperties › QueueOptions

QueueOptions Propiedad

Pone en cola los mensajes salientes de tipo texto, binario y Ping para serializarlos en el hilo de la conexión.

Sintaxis

property QueueOptions: TsgcWSQueueClient_Options read FQueueOptions write SetQueueOptions;

Valor Predeterminado

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

Observaciones

De forma predeterminada, los mensajes se escriben directamente en el hilo llamante. Asignar un nivel de cola (qmLevel1, qmLevel2 o qmLevel3) los pone en cola y los envía secuencialmente desde el hilo de conexión, evitando bloqueos cuando varios hilos llaman a WriteData o Ping simultáneamente. Los mensajes en qmLevel1 se procesan antes que los de qmLevel2, y los de qmLevel2 antes que los de qmLevel3, de modo que las categorías de mayor prioridad (por ejemplo, ping) pueden entregarse antes que los payloads.

MaxQueueSize limita el número de mensajes que puede contener una cola: cero (valor predeterminado) significa sin límite, conservando el comportamiento anterior. Cuando se alcanza el límite, OverflowPolicy decide qué ocurre con los mensajes nuevos: qopDropOldest (valor predeterminado) descarta el mensaje encolado más antiguo para hacer sitio, qopDropNewest descarta el mensaje nuevo y qopDisconnect lo descarta y cierra la conexión. Cada vez que se alcanza el límite, primero se dispara el evento OnSendBufferFull, lo que permite a la aplicación supervisar la contrapresión o anular el descarte.

Ejemplo


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;

Volver a Propiedades