TsgcWebSocketHTTPServer › Olaylar › OnHTTP2BeforeAsyncRequest
Bir HTTP/2 isteği sıraya alınmadan önce tetiklenir, böylece uygulama bunun iş parçacığı havuzunda mı yoksa bağlantı iş parçacığında mı çalışacağını seçebilir.
property OnHTTP2BeforeAsyncRequest: TsgcWSOnBeforeHttp2AsyncRequest;
// TsgcWSOnBeforeHttp2AsyncRequest = procedure(Sender: TObject; Connection: TsgcWSConnection; const ARequestInfo: TIdHTTPRequestInfo; var Async: Boolean) of object
—
HTTP2Options.PoolOfThreads.Enabled True olduğunda, sunucu HTTP/2 çoğullamasından yararlanmak için gelen HTTP/2 isteklerini bir çalışan havuzunda (HTTP2Options.Threads) gönderir. OnHTTP2BeforeAsyncRequest, kuyruğa alınmadan önce her istek için tetiklenir: karar vermek için ARequestInfo.Document'i inceleyin ve iş parçacığı havuzunda çalışmak için Async'i True (varsayılan) veya bağlantı iş parçacığında çalışmak için False olarak ayarlayın. Kısa istekleri bağlantı iş parçacığına yönlendirmek, yavaş istekleri iş parçacıklı tutarken havuz ek yükünü önler; bu önerilen ince ayar stratejisidir.
procedure OnHTTP2BeforeAsyncRequest(Sender: TObject; Connection: TsgcWSConnection;
const ARequestInfo: TIdHTTPRequestInfo; var Async: Boolean);
begin
if ARequestInfo.Document = '/fast-request' then
Async := False;
end;