TsgcTURNServer › Eventi › OnTURNDeleteAllocation
Generato dopo la rimozione di un'allocazione, sia per aggiornamento a zero da parte del client sia perché il suo ciclo di vita è scaduto.
property OnTURNDeleteAllocation: TsgcTURNAllocationEvent;
// TsgcTURNAllocationEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const Allocation: TsgcTURNAllocationItem) of object
—
Generato una volta per ogni teardown dell'Allocation: quando il client emette un REFRESH con lifetime = 0, quando la durata dell'allocation scade sul timer interno del server, oppure quando il server stesso viene disattivato (Active := False). Allocation espone ancora lo snapshot finale di Username, RelayIP/RelayPort, Permissions, Channels e l'ultimo Expiry — utile per emettere record di contabilità, chiudere dashboard o rilasciare risorse per utente. aSocket può essere nil quando l'eliminazione è guidata dal timer di scadenza anziché da una richiesta del client. L'istanza Allocation viene liberata dal server immediatamente dopo il ritorno del gestore; non conservare il riferimento. Viene eseguito sul thread del listener/timer a meno che NotifyEvents non lo reindirizzi.
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;