TsgcTURNServer › Événements › OnTURNBeforeRelayChannelData
Déclenché avant que le serveur ne relaie un payload ChannelData vers un pair ; définissez Accept à False pour abandonner le paquet.
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
—
Déclenché sur le chemin chaud de relais pour le trafic ChannelData (RFC 5766 section 11) : le cadrage léger de 4 octets que TURN utilise à la place des indications Send/Data une fois qu'un canal a été lié avec CHANNEL-BIND. aRelayType indique la direction du relais (client vers pair ou pair vers client) et aPeerIP/aPeerPort identifient le point de terminaison distant. aChannelData expose le numéro de canal et les octets de charge utile qui vont être transmis. Utilisez l'événement pour inspecter le flux média (audio/vidéo capturé via le serveur TURN) ou pour imposer des limites de débit par canal. Définissez Accept := False pour ignorer silencieusement le datagramme — aucune erreur n'est envoyée à l'une ou l'autre des parties. Cet événement se déclenche pour chaque paquet ChannelData relayé, gardez donc le gestionnaire léger ; s'exécute de manière synchrone sauf si NotifyEvents le redirige. Utilisez neNoSync sous charge soutenue pour éviter la contre-pression sur l'écouteur.
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;