TsgcWebSocketLoadBalancerServer › イベント › OnClientConnect
ダウンストリームクライアントがロードバランサーに対してWebSocketハンドシェイクを完了し、バックエンドサーバーと対になったときに発生します。
property OnClientConnect: TsgcWSLBClientConnectionEvent;
// TsgcWSLBClientConnectionEvent = procedure(ServerConnection: TsgcWSConnection; ClientConnection: TsgcWSLoadBalancerClientConnection) of object
—
OnClientConnect は、クライアントセッションが受け入れられ、登録されたバックエンドの 1 つにルーティングされるたびに発生します。ServerConnection はフォワードされたトラフィックを受け取るバックエンドの TsgcWSConnection で、ClientConnection はダウンストリームセッションをラップしてクライアントのメタデータ(Guid、PeerIP、プロトコル、バインディング、選択されたサーバー)を公開する TsgcWSLoadBalancerClientConnection です。このイベントを使用してクライアントからバックエンドへの割り当てをログに記録したり、ダッシュボードを構築したり、セッションマップを設定したりします。このイベントは OnConnect とは別物で、OnConnect は HTTP サーバーから継承されソケットレベルで受け入れられた接続に対して発生します。
procedure OnClientConnect(ServerConnection: TsgcWSConnection;
ClientConnection: TsgcWSLoadBalancerClientConnection);
begin
Log(Format('Client %s routed to backend %s',
[ClientConnection.Guid, ServerConnection.Guid]));
end;