TsgcTURNServer › Gebeurtenissen › OnTURNCreateAllocation
Wordt geactiveerd nadat een nieuwe toewijzing succesvol is aangemaakt voor een client.
property OnTURNCreateAllocation: TsgcTURNAllocationEvent;
// TsgcTURNAllocationEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const Allocation: TsgcTURNAllocationItem) of object
—
Eenmalig geactiveerd per succesvolle ALLOCATE, direct nadat de toewijzing aan de interne tabel van de server is toegevoegd en de AllocateResponse naar de client is verzonden. Allocation stelt de volledige context bloot: LocalIP/LocalPort (luistereindpunt aan serverzijde), ReflexiveIP/ReflexivePort (het gemapte adres van de client), RelayIP/RelayPort (het doorgegeven transportadres geadverteerd aan de client via XOR-RELAYED-ADDRESS), Username/Realm, Lifetime / Expiry en de subcollecties Permissions / Channels. Gebruik dit om operationele dashboards, boekhouding of per-gebruikersquota bij te werken. De Allocation-instantie is eigendom van de server — geef deze niet vrij; deze wordt opnieuw doorgegeven aan OnTURNDeleteAllocation wanneer de toewijzing verloopt. Wordt uitgevoerd op de luisterthread tenzij NotifyEvents dit omleidt.
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;