TsgcSTUNServer › Eventos › OnSTUNRequestSuccess
Gerado antes de o servidor enviar uma Binding Response bem-sucedida, para que o handler possa inspecionar ou vetar a resposta.
property OnSTUNRequestSuccess: TsgcSTUNRequestSuccessEvent;
// TsgcSTUNRequestSuccessEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const aRequest, aResponse: TsgcSTUN_Message; var Accept: Boolean) of object
—
Disparado depois que o servidor processou com sucesso uma Binding Request e construiu a resposta carregando o endereço público (mapeado) do cliente, mas antes de o datagrama ser enviado. aRequest expõe a mensagem STUN original (transaction id, atributos, endpoint de origem) e aResponse expõe a Binding Response que está prestes a ser transmitida; ambos podem ser inspecionados para registro ou auditoria. Defina Accept := False para descartar a resposta silenciosamente, por exemplo para implementar limitação de taxa personalizada ou black-list por cliente. O handler executa na thread do listener, a menos que NotifyEvents o redirecione.
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;