TsgcHTTPServer › Eigenschaften › Options
Bündelt verschiedene Server-Verhaltensflags: Timeouts, integrierte Testseiten und den HTTP-Server-Header.
property Options: TsgcWSOptionsServer read FOptions write SetOptions;
ReadTimeOut=10, WriteTimeOut=0
ReadTimeOut ist das Polling-Intervall in Millisekunden (standardmäßig 10); WriteTimeOut ist die Zeit in Millisekunden, die ein Socket-Schreibvorgang ohne Fortschritt bleiben darf, bevor der stockende Client getrennt wird, und gilt sowohl unter Windows als auch unter POSIX (Linux), was hilft, sich gegen langsam lesende Clients zu schützen, die andernfalls einen Server-Thread blockieren würden. Mit dem Standardwert 0 trennen die IOCP- und EPOLL-E/A-Handler (siehe IOHandlerOptions) weiterhin einen Client, dessen Schreibvorgänge 30 Sekunden lang keinen Fortschritt machen, unverschlüsselt oder mit TLS, während der Standard-E/A-Handler unbegrenzt wartet. Setzen Sie daher WriteTimeOut (zum Beispiel 30000), wenn der Server den Standard-E/A-Handler verwendet und an viele Clients sendet. RaiseDisconnectExceptions löst eine Exception aus, wenn eine Trennung durch einen Protokollfehler verursacht wird. Software enthält den Wert, der im HTTP-Header Server gesendet wird.
Options ist derselbe Typ (TsgcWSOptionsServer), der auch von TsgcWebSocketHTTPServer gemeinsam genutzt wird, daher trägt er auch drei reine WebSocket-Untereigenschaften, die geerbt, auf TsgcHTTPServer aber wirkungslos sind: FragmentedMessages und ValidateUTF8 steuern, wie WebSocket-Frames fragmentiert und validiert werden, und da diese Komponente nie einen WebSocket-Frame empfängt, haben beide keine Auswirkung. HTMLFiles und JavascriptFiles aktivieren die integrierte WebSocket-Testseite im Browser und den zugehörigen JavaScript-Client; auch sie sind hier wirkungslos. Belassen Sie alle vier bei ihren Standardwerten.
oServer := TsgcHTTPServer.Create(nil);
oServer.Options.ReadTimeOut := 10;
oServer.Options.WriteTimeOut := 5000;
oServer.Active := true;