TsgcWebSocketHTTPServerGebeurtenissen › OnHTTP2BeforeAsyncRequest

OnHTTP2BeforeAsyncRequest Gebeurtenis

Wordt geactiveerd voordat een HTTP/2-aanvraag in de wachtrij wordt geplaatst, zodat de toepassing kan kiezen of het in de threadpool of in de verbindingsthread wordt uitgevoerd.

Syntaxis

__property TsgcWSOnBeforeHttp2AsyncRequest OnHTTP2BeforeAsyncRequest;
// typedef void __fastcall (__closure *TsgcWSOnBeforeHttp2AsyncRequest)(TObject * Sender, TsgcWSConnection * Connection, const TIdHTTPRequestInfo * ARequestInfo, bool &Async);

Standaardwaarde

Opmerkingen

Wanneer HTTP2Options.PoolOfThreads.Enabled True is, verdeelt de server binnenkomende HTTP/2-verzoeken over een worker pool (HTTP2Options.Threads) om te profiteren van HTTP/2-multiplexing. OnHTTP2BeforeAsyncRequest wordt geactiveerd voor elk verzoek voordat het in de wachtrij wordt geplaatst: inspecteer ARequestInfo.Document om te beslissen, en stel Async in op True (de standaard) om in de thread pool uit te voeren of op False om in de connection thread uit te voeren. Het routeren van korte verzoeken naar de connection thread vermijdt de pool-overhead terwijl trage verzoeken threaded blijven, wat de aanbevolen fine-tuning-strategie is.

Voorbeeld


void __fastcall TForm1::OnHTTP2BeforeAsyncRequest(TObject *Sender, TsgcWSConnection *Connection,
  const TIdHTTPRequestInfo &ARequestInfo, bool &Async)
{
  if (ARequestInfo.Document == "/fast-request")
    Async = false;
}

Terug naar Events