TsgcTURNServer › Eventi › OnSTUNRequestSuccess
Generato prima che il server invii una risposta STUN/TURN riuscita, in modo che l'handler possa esaminare o vietare la risposta.
property OnSTUNRequestSuccess: TsgcSTUNRequestSuccessEvent;
// TsgcSTUNRequestSuccessEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const aRequest, aResponse: TsgcSTUN_Message; var Accept: Boolean) of object
—
Attivato dopo che il server ha elaborato con successo una richiesta e ha costruito la risposta, ma prima che il datagram venga inviato. Si attiva su ogni STUN Binding Response e su ogni risposta di metodo TURN andata a buon fine (AllocateResponse, RefreshResponse, CreatePermissionResponse, ChannelBindResponse). aRequest espone il messaggio STUN/TURN originale (transaction id, attributi, endpoint di origine) e aResponse espone la risposta che sta per essere trasmessa; entrambi possono essere ispezionati per finalità di logging o auditing. Imposti Accept := False per scartare silenziosamente la risposta — lo usi con parsimonia sui metodi TURN perché il client ritrasmetterà e un AllocateResponse scartato può lasciare bloccata un'Allocation lato server. L'handler viene eseguito sul thread del listener a meno che NotifyEvents non lo rediriga.
procedure TForm1.OnSTUNRequestSuccess(Sender: TObject;
const aSocket: TsgcSocketConnection; const aRequest, aResponse: TsgcSTUN_Message;
var Accept: Boolean);
begin
Memo1.Lines.Add('TURN OK from ' + aSocket.PeerIP + ':' + IntToStr(aSocket.PeerPort));
Accept := True;
end;