TsgcTURNServerEreignisse › OnTURNBeforeRelayChannelData

OnTURNBeforeRelayChannelData Ereignis

Wird ausgelöst, bevor der Server eine ChannelData-Payload an einen Peer weiterleitet; setzen Sie Accept auf False, um das Paket zu verwerfen.

Syntax

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

Standardwert

Hinweise

Wird auf dem Relay-Hotpath für ChannelData-Datenverkehr ausgelöst (RFC 5766 Abschnitt 11): das leichtgewichtige 4-Byte-Framing, das TURN anstelle von Send/Data-Indications verwendet, sobald ein Kanal mit CHANNEL-BIND gebunden wurde. aRelayType gibt die Richtung des Relays an (Client-zu-Peer vs. Peer-zu-Client), und aPeerIP/aPeerPort identifizieren den entfernten Endpunkt. aChannelData macht die Kanalnummer und die weiterzuleitenden Nutzdatenbytes verfügbar. Verwenden Sie das Ereignis, um den Medienstrom zu überprüfen (über den TURN-Server erfasstes Audio/Video) oder um kanalbezogene Ratenbegrenzungen durchzusetzen. Setzen Sie Accept := False, um das Datagramm stillschweigend zu verwerfen — keiner Partei wird ein Fehler gesendet. Dieses Ereignis wird für jedes weitergeleitete ChannelData-Paket ausgelöst, halten Sie den Handler also schlank; läuft synchron, es sei denn, NotifyEvents leitet es um. Verwenden Sie neNoSync bei anhaltender Last, um Gegendruck auf den Listener zu vermeiden.

Beispiel

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;

Zurück zu Ereignissen