TsgcTURNServerEvents › OnTURNBeforeRelayChannelData

OnTURNBeforeRelayChannelData Gebeurtenis

Geactiveerd voordat de server een ChannelData-payload doorstuurt naar een peer; stel Accept in op False om het pakket te verwijderen.

Syntaxis

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

Standaardwaarde

Opmerkingen

Wordt geactiveerd op het relay hot-path voor ChannelData-verkeer (RFC 5766 sectie 11): de lichtgewicht 4-byte framing die TURN gebruikt in plaats van Send/Data-indicaties zodra een kanaal is gebonden met CHANNEL-BIND. aRelayType geeft de richting van de relay aan (client-naar-peer vs peer-naar-client) en aPeerIP/aPeerPort identificeren het externe eindpunt. aChannelData stelt het kanaalnummer en de payload-bytes beschikbaar die op het punt staan te worden doorgestuurd. Gebruik de gebeurtenis om de mediastream te inspecteren (audio/video vastgelegd via de TURN-server) of om per-kanaal snelheidslimieten af te dwingen. Stel Accept := False in om het datagram stilletjes te verwijderen — er wordt geen fout naar beide partijen gestuurd. Deze gebeurtenis wordt geactiveerd voor elk doorgestuurd ChannelData-pakket, dus houd de handler beknopt; wordt synchroon uitgevoerd tenzij NotifyEvents dit omleidt. Gebruik neNoSync bij aanhoudende belasting om tegenpressie op de luisteraar te vermijden.

Voorbeeld

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;

Terug naar gebeurtenissen