TsgcTURNServer › Olaylar › OnSTUNRequestSuccess
Sunucu başarılı bir STUN/TURN yanıtı göndermeden önce tetiklenir, böylece işleyici yanıtı inceleyebilir veya veto edebilir.
property OnSTUNRequestSuccess: TsgcSTUNRequestSuccessEvent;
// TsgcSTUNRequestSuccessEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const aRequest, aResponse: TsgcSTUN_Message; var Accept: Boolean) of object
—
Sunucu bir isteği başarıyla işledikten ve yanıtı oluşturduktan sonra, ancak datagram gönderilmeden önce tetiklenir. Her STUN Binding Response'ta ve her başarılı TURN yöntem yanıtında (AllocateResponse, RefreshResponse, CreatePermissionResponse, ChannelBindResponse) tetiklenir. aRequest, orijinal STUN/TURN mesajını (transaction id, attributes, kaynak uç nokta) sunar ve aResponse, iletilmek üzere olan yanıtı sunar; her ikisi de günlüğe kaydetme veya denetim için incelenebilir. Yanıtı sessizce atmak için Accept := False olarak ayarlayın — TURN yöntemlerinde dikkatli kullanın çünkü istemci yeniden iletecektir ve bırakılan bir AllocateResponse sunucu tarafındaki bir Allocation'ı askıda bırakabilir. NotifyEvents onu yönlendirmediği sürece, işleyici dinleyici iş parçacığında çalışır.
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;