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 (qmLevel1, qmLevel2 ou qmLevel3) 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 à qmLevel1 sont traités avant qmLevel2, et qmLevel2 avant qmLevel3, 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;