TsgcTURNServer이벤트 › OnTURNBeforeRelayChannelData

OnTURNBeforeRelayChannelData 이벤트

서버가 ChannelData 페이로드를 피어에 중계하기 전에 발생합니다. 패킷을 드롭하려면 Accept를 False로 설정하십시오.

구문

property OnTURNBeforeRelayChannelData: TsgcTURNBeforeRelayChannelDataEvent;
// TsgcTURNBeforeRelayChannelDataEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; aRelayType: TsgcTURNRelayChannelDataType; const aPeerIP: string; aPeerPort: Word; const aChannelData: TsgcTURNChannelData; var Accept: Boolean) of object

기본값

설명

ChannelData 트래픽에 대한 릴레이 핫패스에서 발생합니다(RFC 5766 섹션 11): 채널이 CHANNEL-BIND로 바인딩된 후 TURN이 Send/Data 표시 대신 사용하는 경량 4바이트 프레이밍. aRelayType은 릴레이 방향(클라이언트에서 피어 vs 피어에서 클라이언트)을 나타내고 aPeerIP/aPeerPort는 원격 엔드포인트를 식별합니다. aChannelData는 전달될 채널 번호와 페이로드 바이트를 노출합니다. 미디어 스트림(TURN 서버를 통해 캡처된 오디오/비디오)을 검사하거나 채널별 속도 제한을 적용하는 데 이 이벤트를 사용하십시오. 데이터그램을 조용히 삭제하려면 Accept := False를 설정하십시오 — 어느 쪽에도 오류가 전송되지 않습니다. 이 이벤트는 릴레이된 모든 ChannelData 패킷에 대해 발생하므로 핸들러를 가볍게 유지하십시오. NotifyEvents가 리디렉션하지 않는 한 동기적으로 실행됩니다. 지속적인 부하 시 리스너에 대한 역압을 피하려면 neNoSync를 사용하십시오.

예제

procedure TForm1.OnTURNBeforeRelayChannelData(Sender: TObject;
  const aSocket: TsgcSocketConnection; aRelayType: TsgcTURNRelayChannelDataType;
  const aPeerIP: string; aPeerPort: Word; const aChannelData: TsgcTURNChannelData;
  var Accept: Boolean);
begin
  Accept := True;
end;

이벤트로 돌아가기