TsgcWebSocketHTTPServer › Properties › Options

Options Proprietà

Raggruppa vari flag di comportamento del server: gestione dei frammenti, timeout, pagine di test HTTP e validazione UTF-8.

Sintassi

property Options: TsgcWSOptionsServer read FOptions write SetOptions;

Valore predefinito

FragmentedMessages=frgOnlyBuffer, HTMLFiles=True, JavascriptFiles=True, ReadTimeOut=10, WriteTimeOut=0

Note

FragmentedMessages controlla come vengono recapitati i frame frammentati: frgOnlyBuffer (predefinito) bufferizza il messaggio fino al completamento e genera OnMessage/OnBinary; frgOnlyFragmented genera OnFragmented per ogni frammento; frgAll genera entrambi. HTMLFiles e JavascriptFiles consentono al server di servire le pagine di test integrate per browser e il client JavaScript (abilitati per impostazione predefinita). RaiseDisconnectExceptions solleva un'eccezione quando una disconnessione è causata da un errore di protocollo. ReadTimeOut è l'intervallo di polling in millisecondi (10 per impostazione predefinita); WriteTimeOut è il tempo in millisecondi per cui una scrittura su socket può restare senza progressi prima che il client in stallo venga eliminato, e si applica sia su Windows sia su POSIX (Linux), il che aiuta a difendersi dai client slow-read che altrimenti terrebbero occupato un thread del server. Con il valore predefinito 0, i gestori I/O IOCP ed EPOLL (vedere IOHandlerOptions) eliminano comunque un client le cui scritture non fanno progressi per 30 secondi, in chiaro o con TLS, mentre il gestore I/O predefinito attende senza limiti, quindi impostare WriteTimeOut (ad esempio 30000) quando il server usa il gestore I/O predefinito e invia dati a molti client. ValidateUTF8 rifiuta i messaggi di testo contenenti sequenze UTF-8 non valide (disabilitato per impostazione predefinita). Software contiene il valore inviato nell'intestazione HTTP Server.

Esempio


oServer := TsgcWebSocketHTTPServer.Create(nil);
oServer.Options.FragmentedMessages := frgOnlyBuffer;
oServer.Options.ValidateUTF8 := true;
oServer.Options.HTMLFiles := false;
oServer.Active := true;

Torna alle Proprietà