TsgcTURNServerEvents › OnTURNMessageDiscarded

OnTURNMessageDiscarded イベント

サーバーが受信した TURN メッセージがレスポンスを生成する前に破棄されたときに発生します。

構文

property OnTURNMessageDiscarded: TsgcTURNMessageDiscardedEvent;
// TsgcTURNMessageDiscardedEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; aMethod: TsgcStunMessageMethod; const aMessage: TsgcSTUN_Message; const aReason: string) of object

デフォルト値

解説

サーバーがレスポンスまたはエラーを返さずに受信した STUN/TURN メッセージを破棄したときに発生します。aMethod はヘッダーで検出されたメソッド(Allocate、Refresh、CreatePermission、ChannelBind、Send、Data)を識別し、aMessage は解析された STUN メッセージを公開し、aReason はデータグラムが破棄された理由を説明します。典型的な原因には、Send インジケーションのアロケーションが見つからない、XOR-PEER-ADDRESS で指定されたピアの権限がインストールされていない、不正なヘッダー、サポートされていないメソッド、レートリミットされたソースなどが含まれます。診断と侵入検知のためにイベントを使用します。OnSTUNRequestError と異なり、このイベントは返信が一切生成されない RFC のサイレント破棄パスで発生します。NotifyEvents がリダイレクトしない限り、リスナースレッドで実行されます。

使用例

procedure TForm1.OnTURNMessageDiscarded(Sender: TObject;
  const aSocket: TsgcSocketConnection; aMethod: TsgcStunMessageMethod;
  const aMessage: TsgcSTUN_Message; const aReason: string);
begin
  Memo1.Lines.Add(Format('TURN message dropped from %s: %s',
    [aSocket.PeerIP, aReason]));
end;

イベントに戻る