TsgcTURNServer事件 › OnTURNBeforeRelayIndication

OnTURNBeforeRelayIndication 事件

在服务器将 Send-Indication 有效载荷中继给对端之前触发;将 Accept 设置为 False 以丢弃数据包。

语法

property OnTURNBeforeRelayIndication: TsgcTURNBeforeRelayIndicationEvent;
// TsgcTURNBeforeRelayIndicationEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const aPeerIP: string; aPeerPort: Word; const aBytes: TBytes; var Accept: Boolean) of object

默认值

备注

在中继热路径上、每次 Send-Indication(RFC 5766 第 10 节)触发一次:客户端发送了携带应用数据的 SEND indication,该数据必须转发给已安装权限的对等方。aPeerIP/aPeerPort 标识目标对等方(从 XOR-PEER-ADDRESS 获取),aBytes 包含即将在分配的中继套接字上转发的有效载荷。使用此事件检查或捕获中继流量(例如嗅探通过 TURN 服务器发送的音视频包),或实现按对等方的速率限制。将 Accept := False 以静默丢弃数据报;不会向发送客户端发送错误。此事件在中继路径上触发,并同步运行,除非 NotifyEvents 将其重定向,在高负载下请考虑使用 neNoSync 以避免监听器背压。aBytes 是只读视图,请勿修改其内容。

示例

procedure TForm1.OnTURNBeforeRelayIndication(Sender: TObject;
  const aSocket: TsgcSocketConnection; const aPeerIP: string; aPeerPort: Word;
  const aBytes: TBytes; var Accept: Boolean);
begin
  vBytesRelayed := vBytesRelayed + Length(aBytes);
  Accept := True;
end;

返回事件