TsgcWebSocketLoadBalancerServer › Metody › PushPromiseAddPreLoadLinks
Rejestruje regułę Server Push HTTP/2, która wstępnie ładuje zestaw powiązanych zasobów za każdym razem, gdy pasująca ścieżka żądania jest obsługiwana przez load balancer.
procedure PushPromiseAddPreLoadLinks(const aPathMatch: String; const aLinks: TStrings);
| Nazwa | Typ | Opis |
|---|---|---|
aPathMatch | const String | Ścieżka żądania wyzwalająca push, na przykład /index.html. Gdy klient żąda tego zasobu przez HTTP/2, load balancer 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. |
Metoda PushPromiseAddPreLoadLinks dodaje nowy wpis do wewnętrznej tabeli push-promise HTTP/2 współdzielonej przez moduł równoważenia obciążenia z serwerami zapasowymi HTTP. Gdy klient HTTP/2 żąda ścieżki określonej przez aPathMatch, węzeł obsługujący żądanie emituje ramkę PUSH_PROMISE dla każdego łącza w aLinks przed główną odpowiedzią, dzięki czemu klient może wypełnić swoją pamięć podręczną bez dodatkowych operacji wymiany danych; patrz Server Push HTTP/2, aby zapoznać się z pełnym przepływem pracy. Lista łączy jest kopiowana, więc wywołujący może zwolnić dostarczone TStrings po wywołaniu. Obietnica push jest honorowana wyłącznie dla połączeń HTTP/2 negocjowanych przez ALPN; klienci HTTP/1.1 otrzymują główną odpowiedź bez obiecanych zasobów. Należy wywołać PushPromiseRemovePreLoadLinks, aby usunąć regułę.
oServer := TsgcWebSocketLoadBalancerServer.Create(nil);
oLinks := TStringList.Create;
try
oLinks.Add('/styles.css');
oServer.PushPromiseAddPreLoadLinks('/index.html', oLinks);
finally
oLinks.Free;
end;