TsgcWebSocketHTTPServer › Propiedades › Options
Agrupa indicadores misceláneos del comportamiento del servidor: manejo de fragmentos, tiempos de espera, páginas de prueba HTTP y validación UTF-8.
property Options: TsgcWSOptionsServer read FOptions write SetOptions;
FragmentedMessages=frgOnlyBuffer, HTMLFiles=True, JavascriptFiles=True, ReadTimeOut=10, WriteTimeOut=0
FragmentedMessages controla cómo se entregan las tramas fragmentadas: frgOnlyBuffer (predeterminado) almacena el mensaje hasta que está completo y lanza OnMessage/OnBinary; frgOnlyFragmented lanza OnFragmented por cada fragmento; frgAll lanza ambos. HTMLFiles y JavascriptFiles permiten al servidor servir las páginas de prueba del navegador integrado y el cliente JavaScript (habilitados por defecto). RaiseDisconnectExceptions lanza una excepción cuando una desconexión es causada por un error de protocolo. ReadTimeOut es el intervalo de sondeo en milisegundos (10 por defecto); WriteTimeOut es el tiempo en milisegundos que una escritura de socket puede permanecer sin progreso antes de descartar al cliente estancado, y se aplica tanto en Windows como en POSIX (Linux), lo que ayuda a defenderse de los clientes de lectura lenta que, de lo contrario, mantendrían ocupado un subproceso del servidor. Con el valor predeterminado 0, los manejadores de E/S IOCP y EPOLL (véase IOHandlerOptions) igualmente descartan al cliente cuyas escrituras no progresan durante 30 segundos, en texto plano o con TLS, mientras que el manejador de E/S predeterminado espera sin límite, así que establezca WriteTimeOut (por ejemplo, 30000) cuando el servidor use el manejador de E/S predeterminado y envíe datos a muchos clientes. ValidateUTF8 rechaza los mensajes de texto que contienen secuencias UTF-8 no válidas (deshabilitado por defecto). Software contiene el valor enviado en la cabecera HTTP Server.
oServer := TsgcWebSocketHTTPServer.Create(nil);
oServer.Options.FragmentedMessages := frgOnlyBuffer;
oServer.Options.ValidateUTF8 := true;
oServer.Options.HTMLFiles := false;
oServer.Active := true;