TsgcWebSocketHTTPServer › 事件 › OnSSLALPNSelect
在启用 ALPN 的握手期间触发,以便应用程序可以选择协商哪个协议。
property OnSSLALPNSelect: TsgcWSOnSSLALPNSelect;
// TsgcWSOnSSLALPNSelect = procedure(Sender: TObject; aProtocols: TStringList; var aProtocol: String) of object
—
当客户端在 TLS 握手期间发布应用层协议协商 (Application-Layer Protocol Negotiation) 时,会引发 OnSSLALPNSelect 事件,以便服务器决定协商哪种协议。aProtocols 参数是一个 TStringList,其中包含客户端发布的协议名称(例如 "h2"、"http/1.1");将 aProtocol 赋值为服务器希望使用的协议名称。当 HTTP2Options.Enabled 为 True 时,组件默认返回 "h2",从而透明地协商 HTTP/2;如果服务器想强制使用 HTTP/1.1 或自定义协议,请在此处覆盖该选择。返回空字符串将保留默认行为。
procedure OnSSLALPNSelect(Sender: TObject; aProtocols: TStringList;
var aProtocol: String);
begin
if aProtocols.IndexOf('h2') >= 0 then
aProtocol := 'h2'
else
aProtocol := 'http/1.1';
end;