TsgcWebSocketProxyServer › イベント › OnSSLALPNSelect
ダウンストリームクライアントとの ALPN 対応ハンドシェイク中に発火し、アプリケーションがネゴシエートするプロトコルを選択できます。
property OnSSLALPNSelect: TsgcWSOnSSLALPNSelect;
// TsgcWSOnSSLALPNSelect = procedure(Sender: TObject; aProtocols: TStringList; var aProtocol: String) of object
—
ダウンストリームクライアントがTLSハンドシェイク中にApplication-Layer Protocol Negotiationをアドバタイズするとき、OnSSLALPNSelect が発生し、プロキシがダウンストリームレッグでネゴシエートするプロトコルを決定できます。aProtocols パラメータはクライアントがアドバタイズした名前(例: "h2"、"http/1.1")を含む TStringList です。サーバーが使用するものに 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;