TsgcTURNServer事件 › OnTURNChannelDataDiscarded

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;

返回事件