TsgcWebSocketHTTPServer › 이벤트 › 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에 할당하십시오. 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;