TsgcWebSocketHTTPServer › イベント › OnTCPConnect
クライアントが TCP レベルで接続し WebSocket ハンドシェイクが行われる前に発生します。これにより接続を受け入れるか拒否するかを決定できます。
property OnTCPConnect: TsgcWSOnTCPConnect;
// TsgcWSOnTCPConnect = procedure(Connection: TsgcWSConnection; var Accept: Boolean) of object
—
OnTCPConnect は TCP 接続が受け入れられた後、HTTP リクエストが解析される前または WebSocket ハンドシェイクが行われる前に呼び出されます。IP ごとのレート制限を実装するなど、Connection.PeerIP を検査して不要なクライアントを拒否する最初の機会です。Accept を False に設定して接続をすぐに閉じるか、True (デフォルト) のままにしてサーバーが HTTP/WebSocket プロトコル検出を続行するようにします。ハンドラー内で Connection.Transport を trpTCP に設定することで、最初から接続をプレーン TCP ピアに昇格させることもできます。
procedure OnTCPConnectEvent(aConnection: TsgcWSConnection; var Accept: Boolean);
begin
Accept := aConnection.PeerIP <> '192.168.0.100';
end;