TsgcTURNServer事件 › OnSTUNRequestSuccess

OnSTUNRequestSuccess 事件

在服务器发送成功的 STUN/TURN 响应之前触发,处理程序可在此检查或否决回复。

语法

property OnSTUNRequestSuccess: TsgcSTUNRequestSuccessEvent;
// TsgcSTUNRequestSuccessEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const aRequest, aResponse: TsgcSTUN_Message; var Accept: Boolean) of object

默认值

备注

在服务器成功处理请求并构建响应之后、数据报发送之前触发。对每个 STUN Binding Response 及每个成功的 TURN 方法回复(AllocateResponse、RefreshResponse、CreatePermissionResponse、ChannelBindResponse)均会触发。aRequest 公开原始 STUN/TURN 消息(事务 ID、属性、源端点),aResponse 公开即将发送的响应,二者均可用于日志记录或审计。将 Accept := False 设置为静默丢弃响应,在 TURN 方法上请谨慎使用,因为客户端会重传,丢弃 AllocateResponse 可能导致服务器端 Allocation 挂起。处理程序在监听线程上运行,除非 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;

返回事件