TsgcWebSocketHTTPServer › Ereignisse › OnSSLALPNSelect
Wird während eines ALPN-fähigen Handshakes ausgelöst, sodass die Anwendung auswählen kann, welches Protokoll ausgehandelt werden soll.
property OnSSLALPNSelect: TsgcWSOnSSLALPNSelect;
// TsgcWSOnSSLALPNSelect = procedure(Sender: TObject; aProtocols: TStringList; var aProtocol: String) of object
—
Wenn ein Client während des TLS-Handshakes Application-Layer Protocol Negotiation bewirbt, wird OnSSLALPNSelect ausgelöst, sodass der Server entscheiden kann, welches Protokoll ausgehandelt werden soll. Der Parameter aProtocols ist eine TStringList mit den vom Client beworbenen Namen (zum Beispiel "h2", "http/1.1"); weisen Sie aProtocol das zu, das der Server verwenden möchte. Wenn HTTP2Options.Enabled True ist, gibt die Komponente standardmäßig "h2" zurück, sodass HTTP/2 transparent ausgehandelt wird; überschreiben Sie die Auswahl hier, wenn der Server HTTP/1.1 oder ein benutzerdefiniertes Protokoll erzwingen möchte. Die Rückgabe einer leeren Zeichenkette belässt das Standardverhalten.
procedure OnSSLALPNSelect(Sender: TObject; aProtocols: TStringList;
var aProtocol: String);
begin
if aProtocols.IndexOf('h2') >= 0 then
aProtocol := 'h2'
else
aProtocol := 'http/1.1';
end;