TsgcTURNServerEventi › OnTURNBeforeRelayChannelData

OnTURNBeforeRelayChannelData Event

Generato prima che il server inoltri un payload ChannelData a un peer; impostare Accept su False per scartare il pacchetto.

Sintassi

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

Valore predefinito

Note

Si attiva sull'hot-path del relay per il traffico ChannelData (RFC 5766 sezione 11): il framing leggero a 4 byte che TURN utilizza al posto delle indicazioni Send/Data una volta che un canale è stato associato con CHANNEL-BIND. aRelayType indica la direzione del relay (da client a peer o da peer a client) e aPeerIP/aPeerPort identificano l'endpoint remoto. aChannelData espone il numero del canale e i byte del payload che stanno per essere inoltrati. Utilizzi l'evento per ispezionare il flusso multimediale (audio/video acquisito tramite il server TURN) o per applicare limiti di velocità per canale. Imposti Accept := False per scartare silenziosamente il datagramma — non viene inviato alcun errore a nessuna delle due parti. Questo evento si attiva per ogni pacchetto ChannelData inoltrato, quindi mantenga il gestore leggero; viene eseguito in modo sincrono a meno che NotifyEvents non lo rediriga. Utilizzi neNoSync in condizioni di carico sostenuto per evitare back-pressure sul listener.

Esempio

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;

Torna agli Eventi