TsgcWebSocketLoadBalancerServer › Eventos › OnClientMessage
Disparado quando um frame de texto é recebido de um cliente downstream antes de ser encaminhado ao servidor de backend selecionado.
property OnClientMessage: TsgcWSLBServerMessageEvent;
// TsgcWSLBServerMessageEvent = procedure(Connection: TsgcWSConnection; Text: String; var Handled: Boolean) of object
—
OnClientMessage é gerado para cada frame WebSocket de texto recebido de um cliente balanceado a caminho do servidor backend. Connection identifica a sessão do cliente downstream e Text carrega o payload UTF-8 decodificado. Defina Handled como True para consumir a mensagem dentro do balanceador de carga (nesse caso não ocorre nenhum relay para o backend), normalmente quando o balanceador de carga responde a mensagens de controle em nome do backend ou filtra conteúdo inválido. Deixe Handled como False (padrão) para que o balanceador de carga encaminhe a mensagem inalterada.
procedure OnClientMessage(Connection: TsgcWSConnection; Text: String;
var Handled: Boolean);
begin
// answer ping messages directly from the load balancer
if SameText(Text, 'ping') then
begin
Connection.WriteData('pong');
Handled := True;
end;
end;