TsgcWebSocketHTTPServer › Ereignisse › OnHTTP2BeforeAsyncRequest
Wird ausgelöst, bevor eine HTTP/2-Anforderung eingereiht wird, sodass die Anwendung wählen kann, ob sie im Thread-Pool oder im Verbindungsthread ausgeführt wird.
property OnHTTP2BeforeAsyncRequest: TsgcWSOnBeforeHttp2AsyncRequest;
// TsgcWSOnBeforeHttp2AsyncRequest = procedure(Sender: TObject; Connection: TsgcWSConnection; const ARequestInfo: TIdHTTPRequestInfo; var Async: Boolean) of object
—
Wenn HTTP2Options.PoolOfThreads.Enabled True ist, verteilt der Server eingehende HTTP/2-Anfragen auf einen Worker-Pool (HTTP2Options.Threads), um den Vorteil des HTTP/2-Multiplexings zu nutzen. OnHTTP2BeforeAsyncRequest wird für jede Anfrage ausgelöst, bevor sie in die Warteschlange eingereiht wird: Prüfen Sie ARequestInfo.Document, um zu entscheiden, und setzen Sie Async auf True (der Standard), um im Thread-Pool zu laufen, oder auf False, um im Verbindungs-Thread zu laufen. Das Routing kurzer Anfragen zum Verbindungs-Thread vermeidet den Pool-Overhead, während langsame Anfragen threaded bleiben, was die empfohlene Feinabstimmungsstrategie ist.
procedure OnHTTP2BeforeAsyncRequest(Sender: TObject; Connection: TsgcWSConnection;
const ARequestInfo: TIdHTTPRequestInfo; var Async: Boolean);
begin
if ARequestInfo.Document = '/fast-request' then
Async := False;
end;