TsgcSTUNServer › 이벤트 › OnSTUNRequestSuccess
핸들러가 응답을 검사하거나 거부할 수 있도록 서버가 성공적인 Binding Response를 보내기 전에 발생합니다.
property OnSTUNRequestSuccess: TsgcSTUNRequestSuccessEvent;
// TsgcSTUNRequestSuccessEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const aRequest, aResponse: TsgcSTUN_Message; var Accept: Boolean) of object
—
서버가 Binding Request를 성공적으로 처리하고 클라이언트의 공개(매핑된) 주소를 담은 응답을 생성한 후, 데이터그램이 전송되기 전에 발생합니다. aRequest는 원본 STUN 메시지(transaction id, attributes, source endpoint)를 노출하고 aResponse는 전송될 Binding Response를 노출합니다. 둘 다 로깅 또는 감사를 위해 검사할 수 있습니다. Accept := False로 설정하면 응답을 자동으로 폐기합니다. 예를 들어 사용자 지정 속도 제한 또는 클라이언트별 블랙리스트를 구현할 수 있습니다. 핸들러는 NotifyEvents가 리디렉션하지 않는 한 리스너 스레드에서 실행됩니다.
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;