TsgcTURNServer › Zdarzenia › OnTURNCreateAllocation
Wywoływane po pomyślnym utworzeniu nowej alokacji dla klienta.
property OnTURNCreateAllocation: TsgcTURNAllocationEvent;
// TsgcTURNAllocationEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const Allocation: TsgcTURNAllocationItem) of object
—
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.
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;