TsgcWebSocketLoadBalancerServerイベント › OnClientMessage

OnClientMessage イベント

ダウンストリームクライアントからテキストフレームを受信したとき、それが選択されたバックエンドサーバーに転送される前に発火します。

構文

property OnClientMessage: TsgcWSLBServerMessageEvent;
// TsgcWSLBServerMessageEvent = procedure(Connection: TsgcWSConnection; Text: String; var Handled: Boolean) of object

デフォルト値

解説

OnClientMessage は、バランスされたクライアントからバックエンドサーバーに向かう途中で受信されたすべてのテキスト 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;

イベントに戻る