TsgcWebSocketProxyServer › プロパティ › Options
さまざまなプロキシ動作フラグをまとめます: 断片処理、タイムアウト、HTTPテストページ、UTF-8検証。
property Options: TsgcWSOptionsServer read FOptions write SetOptions;
FragmentedMessages=frgOnlyBuffer、HTMLFiles=True、JavascriptFiles=True、ReadTimeOut=10、WriteTimeOut=0
FragmentedMessagesは、ダウンストリームクライアントから受信したフラグメント化フレームの配信方法を制御します。frgOnlyBuffer(デフォルト)はメッセージが完了するまでバッファリングし、OnMessage/OnBinaryを発生させます。frgOnlyFragmentedはフラグメントごとにOnFragmentedを発生させます。frgAllは両方を発生させます。HTMLFilesおよびJavascriptFilesは、プロキシが組み込みのブラウザーテストページとJavaScriptクライアントを提供できるようにします(デフォルトで有効)。RaiseDisconnectExceptionsは、切断がプロトコルエラーによって引き起こされた場合に例外をスローします。ReadTimeOutはポーリング間隔(ミリ秒単位、デフォルトは10)です。WriteTimeOutは、停止したクライアントがドロップされるまでにソケット書き込みが進行しないでいられる時間をミリ秒単位で指定し、WindowsとPOSIX(Linux)の両方で適用され、これによりサーバースレッドを占有してしまうスローリードクライアントに対する防御に役立ちます。デフォルトの0でも、IOCPおよびEPOLLのIOハンドラー(IOHandlerOptionsを参照)は、書き込みが30秒間進行しないクライアントを、平文でもTLSでも引き続きドロップします。一方、デフォルトのIOハンドラーは無制限に待機するため、サーバーがデフォルトのIOハンドラーを使用し、多数のクライアントへ送信する場合はWriteTimeOut(例:30000)を設定してください。ValidateUTF8は、無効なUTF-8シーケンスを含むテキストメッセージを拒否します(デフォルトで無効)。Softwareは、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;