TsgcTURNServerEventi › OnTURNBeforeRelayIndication

OnTURNBeforeRelayIndication Evento

Sollevato prima che il server relazioni un payload Send-Indication a un peer; impostare Accept su False per eliminare il pacchetto.

Sintassi

property OnTURNBeforeRelayIndication: TsgcTURNBeforeRelayIndicationEvent;
// TsgcTURNBeforeRelayIndicationEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const aPeerIP: string; aPeerPort: Word; const aBytes: TBytes; var Accept: Boolean) of object

Valore predefinito

Note

Generato sul percorso di relay attivo, una volta per ogni Send-Indication (RFC 5766 sezione 10): il client ha inviato un'indicazione SEND contenente dati applicativi che devono essere inoltrati a un peer per il quale esiste già un permesso. aPeerIP/aPeerPort identificano il peer di destinazione (ricavati da XOR-PEER-ADDRESS) e aBytes contiene il payload che sta per essere inoltrato sul socket di relay dell'Allocation. Utilizzare l'evento per ispezionare o catturare il traffico inoltrato (ad esempio per analizzare i pacchetti audio/video inviati attraverso il server TURN) o per implementare una limitazione della frequenza per peer. Impostare Accept := False per scartare silenziosamente il datagramma; nessun errore viene inviato al client mittente. Questo evento si attiva sul percorso di relay e viene eseguito in modo sincrono a meno che NotifyEvents non lo reindirizzi — considerare neNoSync sotto carico pesante per evitare backpressure sul listener. aBytes è una vista di sola lettura; non modificarne il contenuto.

Esempio

procedure TForm1.OnTURNBeforeRelayIndication(Sender: TObject;
  const aSocket: TsgcSocketConnection; const aPeerIP: string; aPeerPort: Word;
  const aBytes: TBytes; var Accept: Boolean);
begin
  vBytesRelayed := vBytesRelayed + Length(aBytes);
  Accept := True;
end;

Torna agli Eventi