TsgcWebSocketHTTPServer › Metody › PushPromiseAddPreLoadLinks
Rejestruje regułę Server Push HTTP/2, która wstępnie ładuje zestaw powiązanych zasobów przy każdym obsłużeniu pasującej ścieżki żądania.
procedure PushPromiseAddPreLoadLinks(const aPathMatch: String; const aLinks: TStrings);
| Nazwa | Typ | Opis |
|---|---|---|
aPathMatch | const String | Ścieżka żądania wyzwalająca wypychanie, na przykład /index.html. Gdy klient zażąda tego zasobu przez HTTP/2, serwer wypycha również zarejestrowane dla niego łącza. |
aLinks | const TStrings | Lista ścieżek zasobów (po jednej w wierszu), które będą wypychane razem z dopasowanym żądaniem, takich jak arkusze stylów, skrypty lub obrazy odwoływane przez dokument główny. |
PushPromiseAddPreLoadLinks dodaje nowy wpis do wewnętrznej tabeli push-promise HTTP/2. Za każdym razem, gdy klient HTTP/2 żąda ścieżki określonej przez aPathMatch, serwer emituje ramkę PUSH_PROMISE dla każdego łącza w aLinks przed główną odpowiedzią, dzięki czemu klient może zapełnić pamięć podręczną bez dodatkowych roundtripów; patrz HTTP/2 Server Push, aby zapoznać się z pełnym procesem. Lista łączy jest kopiowana, więc wywołujący może zwolnić przekazany obiekt TStrings po wywołaniu. Push promise jest honorowany wyłącznie na połączeniach HTTP/2 wynegocjowanych przez ALPN; klienci HTTP/1.1 otrzymują główną odpowiedź bez obiecanych zasobów. Wywołaj PushPromiseRemovePreLoadLinks, aby usunąć regułę.
oServer := TsgcWebSocketHTTPServer.Create(nil);
oLinks := TStringList.Create;
try
oLinks.Add('/styles.css');
oServer.PushPromiseAddPreLoadLinks('/index.html', oLinks);
finally
oLinks.Free;
end;