TsgcWebSocketHTTPServer › Eventi › OnSSLALPNSelect
Viene attivato durante un handshake con ALPN abilitato affinché l'applicazione possa scegliere quale protocollo negoziare.
property OnSSLALPNSelect: TsgcWSOnSSLALPNSelect;
// TsgcWSOnSSLALPNSelect = procedure(Sender: TObject; aProtocols: TStringList; var aProtocol: String) of object
—
Quando un client annuncia Application-Layer Protocol Negotiation durante l'handshake TLS, OnSSLALPNSelect viene attivato affinché il server possa decidere quale protocollo negoziare. Il parametro aProtocols è una TStringList con i nomi annunciati dal client (ad esempio "h2", "http/1.1"); assegnare aProtocol a quello che il server vuole utilizzare. Quando HTTP2Options.Enabled è True, il componente restituisce "h2" per impostazione predefinita in modo che HTTP/2 venga negoziato in modo trasparente; ignorare la selezione qui se il server vuole forzare HTTP/1.1 o un protocollo personalizzato. Restituire una stringa vuota lascia in vigore il comportamento predefinito.
procedure OnSSLALPNSelect(Sender: TObject; aProtocols: TStringList;
var aProtocol: String);
begin
if aProtocols.IndexOf('h2') >= 0 then
aProtocol := 'h2'
else
aProtocol := 'http/1.1';
end;