TsgcSTUNServer › Eventos › OnSTUNRequestSuccess
Se activa antes de que el servidor envíe una respuesta de enlace correcta para que el manejador pueda inspeccionar o vetar la respuesta.
property OnSTUNRequestSuccess: TsgcSTUNRequestSuccessEvent;
// TsgcSTUNRequestSuccessEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const aRequest, aResponse: TsgcSTUN_Message; var Accept: Boolean) of object
—
Se activa después de que el servidor ha procesado correctamente una Binding Request y ha construido la respuesta con la dirección pública (mapeada) del cliente, pero antes de que se envíe el datagrama. aRequest expone el mensaje STUN original (id de transacción, atributos, endpoint de origen) y aResponse expone la Binding Response que está a punto de transmitirse; ambos pueden inspeccionarse para registro o auditoría. Establezca Accept := False para descartar la respuesta silenciosamente, por ejemplo para implementar limitación de tasa personalizada o lista negra por cliente. El manejador se ejecuta en el hilo del listener a menos que NotifyEvents lo redirija.
procedure TForm1.OnSTUNRequestSuccess(Sender: TObject;
const aSocket: TsgcSocketConnection; const aRequest, aResponse: TsgcSTUN_Message;
var Accept: Boolean);
begin
Memo1.Lines.Add('Binding OK from ' + aSocket.PeerIP + ':' + IntToStr(aSocket.PeerPort));
Accept := True;
end;