TsgcTURNServer › Eventi › OnTURNBeforeRelayIndication
Sollevato prima che il server relazioni un payload Send-Indication a un peer; impostare Accept su False per eliminare il pacchetto.
property OnTURNBeforeRelayIndication: TsgcTURNBeforeRelayIndicationEvent;
// TsgcTURNBeforeRelayIndicationEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const aPeerIP: string; aPeerPort: Word; const aBytes: TBytes; var Accept: Boolean) of object
—
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.
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;