TsgcTURNServer › イベント › OnTURNChannelDataDiscarded
チャンネル番号が無効またはパーミッションがないために ChannelData メッセージがドロップされたときに発生します。
property OnTURNChannelDataDiscarded: TsgcTURNChannelDataDiscardedEvent;
// TsgcTURNChannelDataDiscardedEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const aChannelData: TsgcTURNChannelData; const aReason: string) of object
—
サーバーが受信した ChannelData データグラムを中継せずにサイレントに破棄したときに発火します。aReason に含まれる典型的な理由:チャンネル番号が 0x4000〜0x7FFF の正規範囲外、アロケーション上にチャンネルバインディングがない、チャンネルバインディングが期限切れ、バインドされたピアアドレスに一致するパーミッションがインストールされていない、または 4 バイトヘッダーにアドバタイズされた長さよりデータグラムが短い。aChannelData はチャンネル番号と破棄された生のペイロードを公開します。RFC 5766 に従いクライアントにエラーレスポンスは返送されません。予期しない破棄が発生した場合の診断または侵入検知にこのイベントを使用します。NotifyEvents がリダイレクトしない限り、リスナースレッドで実行されます。
procedure TForm1.OnTURNChannelDataDiscarded(Sender: TObject;
const aSocket: TsgcSocketConnection; const aChannelData: TsgcTURNChannelData;
const aReason: string);
begin
Memo1.Lines.Add(Format('ChannelData dropped from %s: %s',
[aSocket.PeerIP, aReason]));
end;