TsgcWebSocketProxyServer › Proprietà › Options
Raggruppa vari flag di comportamento del proxy: gestione dei frammenti, timeout, pagine di test HTTP e validazione UTF-8.
property Options: TsgcWSOptionsServer read FOptions write SetOptions;
FragmentedMessages=frgOnlyBuffer, HTMLFiles=True, JavascriptFiles=True, ReadTimeOut=10, WriteTimeOut=0
FragmentedMessages controlla come vengono recapitati i frame frammentati ricevuti dai client a valle: 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 proxy 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.
oProxy := TsgcWebSocketProxyServer.Create(nil);
oProxy.Options.FragmentedMessages := frgOnlyBuffer;
oProxy.Options.ValidateUTF8 := true;
oProxy.Options.HTMLFiles := false;
oProxy.Proxy.Host := 'upstream.example.com';
oProxy.Proxy.Port := 8080;
oProxy.Active := true;