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;