TsgcWebSocketProxyServer › 事件 › OnSSLALPNSelect
在与下游客户端进行启用了 ALPN 的握手期间触发,允许应用程序选择要协商的协议。
property OnSSLALPNSelect: TsgcWSOnSSLALPNSelect;
// TsgcWSOnSSLALPNSelect = procedure(Sender: TObject; aProtocols: TStringList; var aProtocol: String) of object
—
当下游客户端在 TLS 握手期间广播应用层协议协商时,触发 OnSSLALPNSelect,以便代理决定在下游端协商哪种协议。aProtocols 参数是一个包含客户端所广播名称的 TStringList(例如 "h2"、"http/1.1");将 aProtocol 赋值为服务器希望使用的协议。返回空字符串则保持默认行为,此时 TLS 层选择服务器支持的第一个广播协议。
procedure OnSSLALPNSelect(Sender: TObject; aProtocols: TStringList;
var aProtocol: String);
begin
if aProtocols.IndexOf('h2') >= 0 then
aProtocol := 'h2'
else
aProtocol := 'http/1.1';
end;