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는 Allocation의 릴레이 소켓에서 릴레이되려는 페이로드를 포함합니다. 이벤트를 사용하여 릴레이된 트래픽을 검사하거나 캡처하거나(예: TURN 서버를 통해 보내진 오디오/비디오 패킷을 스니핑) 피어별 rate limiting을 구현하십시오. 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;

이벤트로 돌아가기