TsgcWebSocketProxyServer › Properties › ThreadPool
プロキシされた接続が閉じたときにワーカースレッドを破棄する代わりにリサイクルするスレッドプールを有効にします。
property ThreadPool: Boolean read GetThreadPool write SetThreadPool;
False
ThreadPool が True の場合、ダウンストリーム接続のサービスを終えたスレッドは破棄されるのではなくプールに返されます。非アクティブとしてマークされ、再利用されるまで CPU サイクルを消費しないため、短命な接続のコストが大幅に削減されます(ブラウザー駆動の WebSocket プロキシで一般的なケース)。作成できるスレッド数を制御するには ThreadPoolOptions(MaxThreads、PoolSize)を調整します。プールはダウンストリームのワーカースレッドのみをカバーします。Proxy で定義されたサーバーへのアップストリームリンクは、セッションごとに独自のクライアント接続を使用します。
oProxy := TsgcWebSocketProxyServer.Create(nil);
oProxy.ThreadPool := true;
oProxy.ThreadPoolOptions.PoolSize := 32;
oProxy.Proxy.Host := 'upstream.example.com';
oProxy.Proxy.Port := 8080;
oProxy.Active := true;