TsgcWebSocketClient › Propriétés › QueueOptions
Met en file d'attente les messages sortants Texte, Binaire et Ping afin qu'ils soient sérialisés sur le thread de connexion.
property QueueOptions: TsgcWSQueueClient_Options read FQueueOptions write SetQueueOptions;
Text.Level=qmNone, Binary.Level=qmNone, Ping.Level=qmNone, MaxQueueSize=0, OverflowPolicy=qopDropOldest
Par défaut, les messages sont écrits directement sur le thread appelant. L'attribution d'un niveau de file d'attente (qmLevel0, qmLevel1 ou qmLevel2) les met en file et les envoie séquentiellement depuis le thread de connexion, évitant les verrous lorsque plusieurs threads appellent WriteData ou Ping simultanément. Les messages à qmLevel0 sont traités avant qmLevel1, et qmLevel1 avant qmLevel2, de sorte que les catégories à plus haute priorité (par exemple ping) peuvent être livrées avant les charges utiles.
MaxQueueSize limite le nombre de messages qu'une file d'attente peut contenir : zéro (par défaut) signifie illimité, ce qui conserve le comportement antérieur. Lorsque la limite est atteinte, OverflowPolicy décide du sort des nouveaux messages : qopDropOldest (par défaut) supprime le message en file le plus ancien pour faire de la place, qopDropNewest supprime le nouveau message et qopDisconnect le supprime et ferme la connexion. Chaque fois que la limite est atteinte, l'événement OnSendBufferFull se déclenche d'abord, permettant à l'application de surveiller la contre-pression (backpressure) ou d'outrepasser la suppression.
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;