TsgcHTTPServer › プロパティ › Options
タイムアウト、組み込みテストページ、HTTP Server ヘッダーなど、その他のサーバー動作フラグをバンドルします。
property Options: TsgcWSOptionsServer read FOptions write SetOptions;
ReadTimeOut=10、WriteTimeOut=0
ReadTimeOutはポーリング間隔(ミリ秒単位、デフォルトは10)です。WriteTimeOutは、停止したクライアントがドロップされるまでにソケット書き込みが進行しないでいられる時間をミリ秒単位で指定し、WindowsとPOSIX(Linux)の両方で適用され、これによりサーバースレッドを占有してしまうスローリードクライアントに対する防御に役立ちます。デフォルトの0でも、IOCPおよびEPOLLのIOハンドラー(IOHandlerOptionsを参照)は、書き込みが30秒間進行しないクライアントを、平文でもTLSでも引き続きドロップします。一方、デフォルトのIOハンドラーは無制限に待機するため、サーバーがデフォルトのIOハンドラーを使用し、多数のクライアントへ送信する場合はWriteTimeOut(例:30000)を設定してください。RaiseDisconnectExceptionsは、切断がプロトコルエラーによって引き起こされた場合に例外をスローします。Softwareは、HTTP Serverヘッダーで送信される値を保持します。
OptionsはTsgcWebSocketHTTPServerと共有される同じ型(TsgcWSOptionsServer)であるため、TsgcHTTPServerでは継承されているものの効果を持たない3つのWebSocket専用サブプロパティも含んでいます: FragmentedMessagesとValidateUTF8はWebSocketフレームのフラグメント化と検証方法を制御しますが、このコンポーネントはWebSocketフレームを受信することが決してないため、どちらも効果がありません。HTMLFilesとJavascriptFilesは組み込みのWebSocketブラウザテストページとそのJavaScriptクライアントを有効にしますが、ここでも同様に効果がありません。4つとも既定値のままにしてください。
oServer := TsgcHTTPServer.Create(nil);
oServer.Options.ReadTimeOut := 10;
oServer.Options.WriteTimeOut := 5000;
oServer.Active := true;