TsgcWebSocketClient › Özellikler › QueueOptions
Giden Text, Binary ve Ping mesajlarını, bağlantı iş parçacığında serileştirilecek şekilde kuyruğa alır.
property QueueOptions: TsgcWSQueueClient_Options read FQueueOptions write SetQueueOptions;
Text.Level=qmNone, Binary.Level=qmNone, Ping.Level=qmNone, MaxQueueSize=0, OverflowPolicy=qopDropOldest
Varsayılan olarak mesajlar doğrudan çağıran iş parçacığına yazılır. Bir kuyruk düzeyi (qmLevel1, qmLevel2 veya qmLevel3) atamak onları kuyruğa alır ve bağlantı iş parçacığından sırayla gönderir, böylece birkaç iş parçacığı aynı anda WriteData veya Ping çağırdığında kilitlerden kaçınır. qmLevel1 mesajları qmLevel2 öncesinde ve qmLevel2 qmLevel3 öncesinde işlenir, böylece daha yüksek öncelikli kategoriler (örneğin ping) yüklerden önce teslim edilebilir.
MaxQueueSize, bir kuyruğun tutabileceği ileti sayısını sınırlar: sıfır (varsayılan) sınırsız anlamına gelir ve önceki davranışı korur. Sınıra ulaşıldığında yeni iletilere ne olacağına OverflowPolicy karar verir: qopDropOldest (varsayılan) yer açmak için kuyruktaki en eski iletiyi atar, qopDropNewest yeni iletiyi atar, qopDisconnect iletiyi atar ve bağlantıyı kapatır. Sınıra her ulaşıldığında önce OnSendBufferFull olayı tetiklenir; böylece uygulama geri basıncı izleyebilir veya iletinin atılmasını geçersiz kılabilir.
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;