TsgcWebSocketHTTPServerEvents › OnSSLALPNSelect

OnSSLALPNSelect Event

Fires during an ALPN-enabled handshake so the application can pick which protocol to negotiate.

Syntax

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

Default Value

Remarks

When a client advertises Application-Layer Protocol Negotiation during the TLS handshake, OnSSLALPNSelect is raised so the server can decide which protocol to negotiate. The aProtocols parameter is a TStringList with the names advertised by the client (for example "h2", "http/1.1"); assign aProtocol to the one that the server wants to use. When HTTP2Options.Enabled is True the component returns "h2" by default so HTTP/2 is negotiated transparently; override the selection here if the server wants to force HTTP/1.1 or a custom protocol. Returning an empty string leaves the default behaviour in place.

Example


procedure OnSSLALPNSelect(Sender: TObject; aProtocols: TStringList;
  var aProtocol: String);
begin
  if aProtocols.IndexOf('h2') >= 0 then
    aProtocol := 'h2'
  else
    aProtocol := 'http/1.1';
end;

Back to Events