TsgcWebSocketHTTPServerイベント › OnSSLALPNSelect

OnSSLALPNSelect イベント

ALPN対応のハンドシェイク中に発生し、アプリケーションがネゴシエートするプロトコルを選択できるようにします。

構文

property OnSSLALPNSelect: TsgcWSOnSSLALPNSelect;
// TsgcWSOnSSLALPNSelect = procedure(Sender: TObject; aProtocols: TStringList; var aProtocol: String) of object

デフォルト値

解説

クライアントが TLS ハンドシェイク中にアプリケーション層プロトコルネゴシエーションをアドバタイズすると、OnSSLALPNSelect が発生し、サーバーがどのプロトコルをネゴシエートするかを決定できます。aProtocols パラメータはクライアントがアドバタイズした名前(例: "h2"、"http/1.1")を含む TStringList です。サーバーが使用したいプロトコルを 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;

イベントに戻る