TsgcTURNServer › Zdarzenia › OnSTUNRequestSuccess
Wywoływane przed wysłaniem przez serwer pomyślnej odpowiedzi STUN/TURN, umożliwiając obsługi zdarzenia inspekcję lub odrzucenie odpowiedzi.
property OnSTUNRequestSuccess: TsgcSTUNRequestSuccessEvent;
// TsgcSTUNRequestSuccessEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const aRequest, aResponse: TsgcSTUN_Message; var Accept: Boolean) of object
—
Wywoływane po pomyślnym przetworzeniu żądania przez serwer i zbudowaniu odpowiedzi, ale przed wysłaniem datagramu. Wyzwalane dla każdej odpowiedzi STUN Binding Response oraz dla każdej pomyślnej odpowiedzi na metodę TURN (AllocateResponse, RefreshResponse, CreatePermissionResponse, ChannelBindResponse). Parametr aRequest udostępnia oryginalną wiadomość STUN/TURN (identyfikator transakcji, atrybuty, punkt końcowy źródła), a aResponse udostępnia odpowiedź przeznaczoną do przesłania; obie mogą być sprawdzane w celach rejestrowania lub audytu. Ustaw Accept := False, aby po cichu odrzucić odpowiedź — należy używać tej opcji ostrożnie w przypadku metod TURN, ponieważ klient będzie ponownie wysyłał żądanie, a porzucona AllocateResponse może pozostawić po stronie serwera nieaktywną alokację. Procedura obsługi wykonuje się w wątku nasłuchu, chyba że właściwość NotifyEvents zmienia to zachowanie.
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;