TsgcTURNServer › Ereignisse › OnTURNDeleteAllocation
Wird ausgelöst, nachdem eine Allocation entfernt wurde, entweder durch eine Client-Aktualisierung auf null oder weil ihre Lebensdauer abgelaufen ist.
property OnTURNDeleteAllocation: TsgcTURNAllocationEvent;
// TsgcTURNAllocationEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const Allocation: TsgcTURNAllocationItem) of object
—
Wird einmal pro Allocation-Abbau ausgelöst: wenn der Client einen REFRESH mit lifetime = 0 ausgibt, wenn die Allocation-Lebensdauer am internen Timer des Servers abläuft oder wenn der Server selbst deaktiviert wird (Active := False). Allocation stellt weiterhin die endgültige Momentaufnahme von Username, RelayIP/RelayPort, Permissions, Channels und der letzten Expiry bereit — nützlich, um Abrechnungsdatensätze auszugeben, Dashboards zu schließen oder Ressourcen pro Benutzer freizugeben. aSocket kann nil sein, wenn die Löschung vom Ablauf-Timer und nicht von einer Client-Anforderung gesteuert wird. Die Allocation-Instanz wird vom Server unmittelbar nach der Rückkehr des Handlers freigegeben; behalten Sie die Referenz nicht. Wird im Listener-/Timer-Thread ausgeführt, sofern NotifyEvents ihn nicht umleitet.
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;