TsgcWebSocketHTTPServer事件 › OnSSLALPNSelect

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;

返回事件