TsgcWebSocketClient › Propiedades › Options
Personaliza las cabeceras de negociación y ajusta el comportamiento del cliente, como la fragmentación y la validación de UTF-8.
property Options: TsgcWSOptionsClient read FOptions write SetOptions;
FragmentedMessages=frgOnlyBuffer, RaiseDisconnectExceptions=True, ValidateUTF8=False, CleanDisconnect=False, WaitForConnect=False
Expone la configuración del handshake y en tiempo de ejecución: Parameters (parámetros GET adicionales), Origin (encabezado Origin personalizado) y FragmentedMessages, que selecciona si los fragmentos se almacenan en búfer (frgOnlyBuffer), se notifican individualmente (frgOnlyFragmented) o ambas opciones (frgAll). RaiseDisconnectExceptions genera una excepción en desconexiones por error de protocolo, ValidateUTF8 verifica la conformidad UTF-8 de las tramas de texto y CleanDisconnect envía una trama de cierre antes de abandonar la sesión TCP.
WaitForConnect controla cuándo retorna la llamada síncrona a Connect. De forma predeterminada (False), Connect retorna en cuanto el transporte WebSocket está conectado, lo que puede ocurrir antes de que se haya disparado el evento OnConnect. Cuando se establece en True, Connect retorna solo después de que se haya ejecutado el evento OnConnect, de modo que para un subprotocolo que establece una sesión al conectar (por ejemplo el protocolo sgc, que asigna una sesión en su OnConnect) la conexión está completamente lista en cuanto Connect retorna. Esto evita una condición de carrera de disponibilidad de conexión en reconexiones rápidas, donde el código que inspecciona la conexión inmediatamente después de Connect podría ejecutarse antes de que se haya disparado el OnConnect del subprotocolo. Se aplica cuando NotifyEvents es neNoSync, donde los eventos se ejecutan en línea en el hilo de lectura. Con neAsynchronous, el evento OnConnect se encola en el hilo principal y no se puede esperar dentro de Connect, por lo que en ese caso debe usarse el evento OnConnect para detectar la disponibilidad.
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;