TsgcWebSocketServer › 事件 › 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;