TsgcTURNServer › Events › OnTURNDeleteAllocation
Déclenché après la suppression d'une Allocation, soit par rafraîchissement à zéro du client, soit parce que sa durée de vie a expiré.
property OnTURNDeleteAllocation: TsgcTURNAllocationEvent;
// TsgcTURNAllocationEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const Allocation: TsgcTURNAllocationItem) of object
—
Déclenché une fois par démantèlement d'allocation : lorsque le client émet un REFRESH avec lifetime = 0, lorsque la durée de vie de l'allocation expire sur le minuteur interne du serveur, ou lorsque le serveur lui-même est désactivé (Active := False). Allocation expose toujours l'instantané final de Username, RelayIP/RelayPort, Permissions, Channels et la dernière Expiry — utile pour émettre des enregistrements comptables, fermer des tableaux de bord ou libérer des ressources par utilisateur. aSocket peut être nil lorsque la suppression est pilotée par le minuteur d'expiration plutôt que par une requête client. L'instance Allocation est libérée par le serveur immédiatement après le retour du gestionnaire ; ne conservez pas la référence. S'exécute sur le thread d'écoute/minuteur sauf si NotifyEvents le redirige.
procedure TForm1.OnTURNDeleteAllocation(Sender: TObject;
const aSocket: TsgcSocketConnection; const Allocation: TsgcTURNAllocationItem);
begin
Memo1.Lines.Add(Format('Allocation deleted: user=%s relay=%s:%d',
[Allocation.Username, Allocation.RelayIP, Allocation.RelayPort]));
end;