TsgcTURNServer › イベント › OnSTUNRequestSuccess
サーバーが成功した STUN/TURN レスポンスを送信する前に発生し、ハンドラーが返信を検査または拒否できます。
property OnSTUNRequestSuccess: TsgcSTUNRequestSuccessEvent;
// TsgcSTUNRequestSuccessEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const aRequest, aResponse: TsgcSTUN_Message; var Accept: Boolean) of object
—
サーバーがリクエストを正常に処理してレスポンスを構築した後、データグラムが送信される前に発火します。すべての STUN バインディングレスポンスおよびすべての成功した TURN メソッド返答(AllocateResponse、RefreshResponse、CreatePermissionResponse、ChannelBindResponse)でトリガーされます。aRequest は元の STUN/TURN メッセージ(トランザクション ID、属性、送信元エンドポイント)を公開し、aResponse は送信されようとしているレスポンスを公開します。両方ともログまたは監査のために検査できます。Accept := False を設定するとレスポンスを静かに破棄します。TURN メソッドでは慎重に使用してください。クライアントは再送信を行い、ドロップされた AllocateResponse はサーバー側の割り当てを停滞させる可能性があります。ハンドラーは NotifyEvents でリダイレクトされない限り、リスナースレッドで実行されます。
procedure TForm1.OnSTUNRequestSuccess(Sender: TObject;
const aSocket: TsgcSocketConnection; const aRequest, aResponse: TsgcSTUN_Message;
var Accept: Boolean);
begin
Memo1.Lines.Add('TURN OK from ' + aSocket.PeerIP + ':' + IntToStr(aSocket.PeerPort));
Accept := True;
end;