TsgcWebSocketServer › Events › OnSSLALPNSelect
Fires during an ALPN-enabled handshake so the application can pick which protocol to negotiate.
property OnSSLALPNSelect: TsgcWSOnSSLALPNSelect;
// TsgcWSOnSSLALPNSelect = procedure(Sender: TObject; aProtocols: TStringList; var aProtocol: String) of object
—
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. Returning an empty string leaves the default behaviour in place, in which case the TLS layer picks the first advertised protocol the server supports.
procedure OnSSLALPNSelect(Sender: TObject; aProtocols: TStringList;
var aProtocol: String);
begin
if aProtocols.IndexOf('h2') >= 0 then
aProtocol := 'h2'
else
aProtocol := 'http/1.1';
end;