TsgcHTTPServer › Propriétés › Options
Regroupe divers indicateurs de comportement du serveur : délais d'expiration, pages de test intégrées et l'en-tête HTTP Server.
property Options: TsgcWSOptionsServer read FOptions write SetOptions;
ReadTimeOut=10, WriteTimeOut=0
ReadTimeOut est l'intervalle d'interrogation en millisecondes (10 par défaut) ; WriteTimeOut est le temps en millisecondes pendant lequel une écriture de socket peut rester sans progression avant que le client bloqué soit abandonné, et s'applique à la fois sous Windows et POSIX (Linux), ce qui aide à se défendre contre les clients en lecture lente qui mobiliseraient sinon un thread serveur. Avec la valeur par défaut 0, les gestionnaires d'E/S IOCP et EPOLL (voir IOHandlerOptions) abandonnent quand même un client dont les écritures ne progressent plus depuis 30 secondes, en clair ou en TLS, tandis que le gestionnaire d'E/S par défaut attend sans limite. Définissez donc WriteTimeOut (par exemple 30000) lorsque le serveur utilise le gestionnaire d'E/S par défaut et envoie des données à de nombreux clients. RaiseDisconnectExceptions lève une exception lorsqu'une déconnexion est provoquée par une erreur de protocole. Software contient la valeur envoyée dans l'en-tête HTTP Server.
Options est le même type (TsgcWSOptionsServer) que celui partagé avec TsgcWebSocketHTTPServer, il porte donc aussi trois sous-propriétés propres au WebSocket, héritées mais inertes sur TsgcHTTPServer : FragmentedMessages et ValidateUTF8 régissent la façon dont les trames WebSocket sont fragmentées et validées, et comme ce composant ne reçoit jamais de trame WebSocket, aucune des deux n'a d'effet. HTMLFiles et JavascriptFiles activent la page de test WebSocket intégrée du navigateur et son client JavaScript ; elles sont également inertes ici. Laissez ces quatre valeurs à leurs valeurs par défaut.
oServer := TsgcHTTPServer.Create(nil);
oServer.Options.ReadTimeOut := 10;
oServer.Options.WriteTimeOut := 5000;
oServer.Active := true;