TsgcWebSocketHTTPServer › Eventos › OnSSLALPNSelect
Disparado durante um handshake com ALPN habilitado, para que a aplicação possa escolher qual protocolo negociar.
property OnSSLALPNSelect: TsgcWSOnSSLALPNSelect;
// TsgcWSOnSSLALPNSelect = procedure(Sender: TObject; aProtocols: TStringList; var aProtocol: String) of object
—
Quando um cliente anuncia Application-Layer Protocol Negotiation durante o handshake TLS, OnSSLALPNSelect é gerado para que o servidor possa decidir qual protocolo negociar. O parâmetro aProtocols é uma TStringList com os nomes anunciados pelo cliente (por exemplo "h2", "http/1.1"); atribua a aProtocol aquele que o servidor deseja utilizar. Quando HTTP2Options.Enabled é True, o componente retorna "h2" por padrão para que o HTTP/2 seja negociado de forma transparente; sobrescreva a seleção aqui se o servidor precisar forçar HTTP/1.1 ou um protocolo personalizado. Retornar uma string vazia mantém o comportamento padrão em vigor.
procedure OnSSLALPNSelect(Sender: TObject; aProtocols: TStringList;
var aProtocol: String);
begin
if aProtocols.IndexOf('h2') >= 0 then
aProtocol := 'h2'
else
aProtocol := 'http/1.1';
end;