TsgcTURNServer › Événements › OnTURNCreateAllocation
Déclenché après qu'une nouvelle Allocation a été créée avec succès pour un client.
property OnTURNCreateAllocation: TsgcTURNAllocationEvent;
// TsgcTURNAllocationEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const Allocation: TsgcTURNAllocationItem) of object
—
Déclenché une fois par ALLOCATE réussi, juste après que l'allocation a été ajoutée à la table interne du serveur et que AllocateResponse a été envoyé au client. Allocation expose le contexte complet : LocalIP/LocalPort (endpoint d'écoute côté serveur), ReflexiveIP/ReflexivePort (adresse mappée du client), RelayIP/RelayPort (l'adresse de transport relayée annoncée au client via XOR-RELAYED-ADDRESS), Username/Realm, Lifetime / Expiry et les sous-collections Permissions / Channels. Utilisez-le pour mettre à jour les tableaux de bord opérationnels, la comptabilité ou les quotas par utilisateur. L'instance Allocation appartient au serveur — ne la libérez pas ; elle est passée à nouveau à OnTURNDeleteAllocation à l'expiration de l'allocation. S'exécute sur le thread d'écoute sauf si NotifyEvents le redirige.
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;