TsgcTURNServer › Ereignisse › OnSTUNRequestSuccess
Wird ausgelöst, bevor der Server eine erfolgreiche STUN-/TURN-Antwort sendet, sodass der Handler die Antwort inspizieren oder ablehnen kann.
property OnSTUNRequestSuccess: TsgcSTUNRequestSuccessEvent;
// TsgcSTUNRequestSuccessEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const aRequest, aResponse: TsgcSTUN_Message; var Accept: Boolean) of object
—
Wird ausgelöst, nachdem der Server eine Anfrage erfolgreich verarbeitet und die Antwort erstellt hat, aber bevor das Datagramm gesendet wird. Wird bei jeder STUN Binding Response und bei jeder erfolgreichen TURN-Methodenantwort (AllocateResponse, RefreshResponse, CreatePermissionResponse, ChannelBindResponse) ausgelöst. aRequest macht die ursprüngliche STUN/TURN-Nachricht verfügbar (Transaktions-ID, Attribute, Quell-Endpunkt), und aResponse macht die zu übertragende Antwort verfügbar; beide können zur Protokollierung oder Auditierung überprüft werden. Setzen Sie Accept := False, um die Antwort stillschweigend zu verwerfen — verwenden Sie dies bei TURN-Methoden sparsam, da der Client erneut sendet und eine verworfene AllocateResponse eine serverseitige Allocation hängen lassen kann. Der Handler läuft auf dem Listener-Thread, es sei denn, NotifyEvents leitet ihn um.
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;