TsgcWebSocketHTTPServer › Propriedades › Options
Agrupa flags diversas de comportamento do servidor: tratamento de fragmentos, timeouts, páginas de teste HTTP e validação UTF-8.
property Options: TsgcWSOptionsServer read FOptions write SetOptions;
FragmentedMessages=frgOnlyBuffer, HTMLFiles=True, JavascriptFiles=True, ReadTimeOut=10, WriteTimeOut=0
FragmentedMessages controla como os frames fragmentados são entregues: frgOnlyBuffer (padrão) armazena a mensagem em buffer até que ela esteja completa e gera OnMessage/OnBinary; frgOnlyFragmented gera OnFragmented para cada fragmento; frgAll gera ambos. HTMLFiles e JavascriptFiles permitem que o servidor sirva as páginas de teste de navegador integradas e o cliente JavaScript (habilitado por padrão). RaiseDisconnectExceptions dispara quando uma desconexão é causada por um erro de protocolo. ReadTimeOut é o intervalo de polling em milissegundos (10 por padrão); WriteTimeOut é o tempo em milissegundos que uma escrita de socket pode ficar sem progresso antes que o cliente travado seja descartado, e se aplica tanto no Windows quanto no POSIX (Linux), o que ajuda a defender contra clientes de leitura lenta que, de outra forma, ocupariam um thread do servidor. Com o valor padrão 0, os manipuladores de E/S IOCP e EPOLL (veja IOHandlerOptions) ainda descartam um cliente cujas escritas ficam sem progresso por 30 segundos, com ou sem TLS, enquanto o manipulador de E/S padrão espera sem limite, portanto defina WriteTimeOut (por exemplo, 30000) quando o servidor usar o manipulador de E/S padrão e enviar dados para muitos clientes. ValidateUTF8 rejeita mensagens de texto que contenham sequências UTF-8 inválidas (desabilitado por padrão). Software contém o valor enviado no cabeçalho HTTP Server.
oServer := TsgcWebSocketHTTPServer.Create(nil);
oServer.Options.FragmentedMessages := frgOnlyBuffer;
oServer.Options.ValidateUTF8 := true;
oServer.Options.HTMLFiles := false;
oServer.Active := true;