TsgcTURNServerOlaylar › OnTURNBeforeAllocate

OnTURNBeforeAllocate Olay

Yeni bir Allocation oluşturulmadan önce tetiklenir; rölelenen IP/port'u inceleyin ve ALLOCATE isteğini reddetmek için Reject'i ayarlayın.

Sözdizimi

property OnTURNBeforeAllocate: TsgcTURNBeforeAllocateEvent;
// TsgcTURNBeforeAllocateEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const aIP: String; aPort: Word; var Reject: Boolean) of object

Varsayılan Değer

Remarks

Bir ALLOCATE isteği işlenirken, relay soketi rezerve edildikten sonra ancak Allocation nesnesi dahili tabloya eklenmeden önce tetiklenir. aIP/aPort, sunucunun XOR-RELAYED-ADDRESS içinde duyurmak üzere olduğu aktarılan taşıma adresini taşır — IP, TURNOptions.Allocation.RelayIP değerinden (veya boşsa Host değerinden) ve bağlantı noktası Allocation.MinPort–MaxPort aralığından alınır. Uygulama düzeyinde kotaları zorlamak, belirli istemcileri veya eş bağlantı noktalarını engellemek veya tahsis isteklerini denetlemek için olayı kullanın. ALLOCATE'i reddetmek için Reject := True olarak ayarlayın; sunucu relay bağlantı noktasını serbest bırakır ve bir hata yanıtı (486 Allocation Quota Reached) ile yanıt verir. Allocation'ın oluşturulmasına izin vermek için Reject değerini False olarak bırakın — sonraki OnTURNCreateAllocation olayı başarıyı onaylar. NotifyEvents yeniden yönlendirmediği sürece dinleyici iş parçacığında çalışır.

Örnek

procedure TForm1.OnTURNBeforeAllocate(Sender: TObject;
  const aSocket: TsgcSocketConnection; const aIP: String; aPort: Word;
  var Reject: Boolean);
begin
  Memo1.Lines.Add(Format('Allocate %s:%d for %s', [aIP, aPort, aSocket.PeerIP]));
  Reject := BlackList.Contains(aSocket.PeerIP);
end;

Olaylara Dön