TsgcWebSocketLoadBalancerServer › 이벤트 › OnClientMessage
다운스트림 클라이언트로부터 텍스트 프레임이 수신되어 선택된 백엔드 서버로 전달되기 전에 발생합니다.
property OnClientMessage: TsgcWSLBServerMessageEvent;
// TsgcWSLBServerMessageEvent = procedure(Connection: TsgcWSConnection; Text: String; var Handled: Boolean) of object
—
OnClientMessage은 백엔드 서버로 가는 도중 balanced 클라이언트로부터 수신된 모든 텍스트 WebSocket 프레임에 대해 발생합니다. Connection은 다운스트림 클라이언트 세션을 식별하고 Text는 디코딩된 UTF-8 페이로드를 전달합니다. 로드 밸런서 내부에서 메시지를 소비하려면 Handled를 True로 설정하십시오(이 경우 백엔드로 릴레이되지 않음). 일반적으로 로드 밸런서가 백엔드를 대신하여 제어 메시지에 응답하거나 잘못된 콘텐츠를 필터링할 때 사용됩니다. 로드 밸런서가 메시지를 변경하지 않고 전달하도록 하려면 Handled를 False(기본값)로 두십시오.
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;