TsgcWebSocketClient › Eigenschaften › Options
Passt Handshake-Header an und feinabstimmt das Client-Verhalten wie Fragmentierung und UTF-8-Validierung.
property Options: TsgcWSOptionsClient read FOptions write SetOptions;
FragmentedMessages=frgOnlyBuffer, RaiseDisconnectExceptions=True, ValidateUTF8=False, CleanDisconnect=False, WaitForConnect=False
Stellt Handshake- und Laufzeiteinstellungen bereit: Parameters (zusätzliche GET-Parameter), Origin (benutzerdefinierter Origin-Header) und FragmentedMessages, das auswählt, ob Fragmente gepuffert (frgOnlyBuffer), einzeln gemeldet (frgOnlyFragmented) oder beides (frgAll) werden. RaiseDisconnectExceptions löst bei Protokollfehler-Disconnects eine Ausnahme aus, ValidateUTF8 überprüft die UTF-8-Konformität von Text-Frames und CleanDisconnect sendet einen Close-Frame, bevor die TCP-Sitzung getrennt wird.
WaitForConnect steuert, wann der synchrone Connect-Aufruf zurückkehrt. Standardmäßig (False) kehrt Connect zurück, sobald der WebSocket-Transport verbunden ist, was bereits vor dem Auslösen des OnConnect-Ereignisses geschehen kann. Wenn auf True gesetzt, kehrt Connect erst zurück, nachdem das OnConnect-Ereignis ausgeführt wurde, sodass bei einem Sub-Protokoll, das beim Verbinden eine Sitzung aufbaut (zum Beispiel das sgc-Protokoll, das in seinem OnConnect eine Sitzung zuweist), die Verbindung vollständig bereit ist, sobald Connect zurückkehrt. Dies vermeidet eine Wettlaufsituation bei der Verbindungsbereitschaft bei schnellen Reconnects, bei der Code, der die Verbindung unmittelbar nach Connect prüft, ausgeführt werden könnte, bevor das OnConnect des Sub-Protokolls ausgelöst wurde. Dies gilt, wenn NotifyEvents auf neNoSync steht, wo Ereignisse inline im Lese-Thread ausgeführt werden. Mit neAsynchronous wird das OnConnect-Ereignis in den Hauptthread eingereiht und kann nicht innerhalb von Connect abgewartet werden; verwenden Sie in diesem Fall das OnConnect-Ereignis, um die Bereitschaft zu erkennen.
oClient := TsgcWebSocketClient.Create(nil);
oClient.URL := 'wss://www.esegece.com:2053';
oClient.Options.Parameters := '/ws/';
oClient.Options.ValidateUTF8 := true;
oClient.Options.CleanDisconnect := true;
oClient.Options.WaitForConnect := true;
oClient.Active := true;