TsgcTURNServerZdarzenia › OnTURNCreateAllocation

OnTURNCreateAllocation Zdarzenie

Wywoływane po pomyślnym utworzeniu nowej alokacji dla klienta.

Składnia

property OnTURNCreateAllocation: TsgcTURNAllocationEvent;
// TsgcTURNAllocationEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const Allocation: TsgcTURNAllocationItem) of object

Wartość domyślna

Uwagi

Wywoływane raz po każdym pomyślnym ALLOCATE, zaraz po dodaniu alokacji do wewnętrznej tabeli serwera i wysłaniu AllocateResponse do klienta. Parametr Allocation udostępnia pełny kontekst: LocalIP/LocalPort (punkt nasłuchiwania po stronie serwera), ReflexiveIP/ReflexivePort (odwzorowany adres klienta), RelayIP/RelayPort (relayowany adres transportowy ogłaszany klientowi przez XOR-RELAYED-ADDRESS), Username/Realm, Lifetime/Expiry oraz subkolekcje Permissions/Channels. Zdarzenie może być używane do aktualizowania pulpitów operacyjnych, rozliczeń lub limitów dla poszczególnych użytkowników. Instancja Allocation jest własnością serwera, nie należy jej zwalniać; jest ona ponownie przekazywana do zdarzenia OnTURNDeleteAllocation po wygaśnięciu alokacji. Działa w wątku nasłuchiwania, chyba że NotifyEvents przekierowuje je.

Przykład

procedure TForm1.OnTURNCreateAllocation(Sender: TObject;
  const aSocket: TsgcSocketConnection; const Allocation: TsgcTURNAllocationItem);
begin
  Memo1.Lines.Add(Format('Allocation created: user=%s relay=%s:%d lifetime=%d',
    [Allocation.Username, Allocation.RelayIP, Allocation.RelayPort,
     Allocation.Lifetime]));
end;

Powrót do Zdarzeń