TsgcWebSocketProxyServer › Events › OnSSLALPNSelect
Generato durante un handshake con ALPN abilitato con un client downstream 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 a valle annuncia la negoziazione del protocollo a livello applicativo (Application-Layer Protocol Negotiation) durante l'handshake TLS, OnSSLALPNSelect viene generato in modo che il proxy possa decidere quale protocollo negoziare sul tratto a valle. Il parametro aProtocols è una TStringList con i nomi annunciati dal client (per esempio "h2", "http/1.1"); assegni aProtocol a quello che il server desidera utilizzare. Restituire una stringa vuota mantiene il comportamento predefinito, nel qual caso il livello TLS sceglie il primo protocollo annunciato supportato dal server.
procedure OnSSLALPNSelect(Sender: TObject; aProtocols: TStringList;
var aProtocol: String);
begin
if aProtocols.IndexOf('h2') >= 0 then
aProtocol := 'h2'
else
aProtocol := 'http/1.1';
end;