TsgcWebSocketLoadBalancerServer › イベント › OnHandshake
ロードバランサーが受信WebSocketハンドシェイクを検証した後、HTTPレスポンスが返される前に発生します。
property OnHandshake: TsgcWSHandshakeEvent;
// TsgcWSHandshakeEvent = procedure(Connection: TsgcWSConnection; var Headers: TStringList) of object
—
OnHandshake は HTTP サーバーから継承され、受信 HTTP Upgrade リクエストが解析されて応答しようとするときに発生します。受信リクエストヘッダーは接続の HeadersRequest プロパティ(TsgcWSConnectionServer にキャスト)を通じて利用可能です。受信した Headers リストにはピアに送信されるレスポンス行が含まれており、カスタムヘッダーで補完できます。標準 WebSocket ヘッダーは既に存在しており、重複させてはなりません。このイベントはダウンストリームクライアントとロードバランサーを通じて登録するバックエンドサーバーの両方で発生するため、2 つのパスを区別する必要がある場合は Connection.URL を確認してください。
procedure OnHandshake(Connection: TsgcWSConnection; var Headers: TStringList);
begin
Headers.Add('X-LoadBalancer: sgcWebSockets');
end;