TsgcWebSocketLoadBalancerServer › Eventos › OnHandshake
Disparado após o load balancer validar um handshake WebSocket de entrada e antes de a resposta HTTP ser retornada.
property OnHandshake: TsgcWSHandshakeEvent;
// TsgcWSHandshakeEvent = procedure(Connection: TsgcWSConnection; var Headers: TStringList) of object
—
OnHandshake é herdado do servidor HTTP e é gerado quando a requisição HTTP Upgrade recebida foi analisada e está prestes a ser respondida. Os cabeçalhos da requisição recebida estão disponíveis através da propriedade HeadersRequest da conexão (convertida para TsgcWSConnectionServer); a lista Headers que você recebe contém as linhas de resposta que serão enviadas ao peer e pode ser complementada com cabeçalhos personalizados. Os cabeçalhos WebSocket padrão já estão presentes e não devem ser duplicados. O evento dispara tanto para clientes downstream quanto para servidores backend que se registram através do load balancer, portanto verifique Connection.URL se você precisar distinguir os dois caminhos.
procedure OnHandshake(Connection: TsgcWSConnection; var Headers: TStringList);
begin
Headers.Add('X-LoadBalancer: sgcWebSockets');
end;