TsgcTURNServer › Events › OnTURNBeforeRelayChannelData
Geactiveerd voordat de server een ChannelData-payload doorstuurt naar een peer; stel Accept in op False om het pakket te verwijderen.
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
—
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.
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;