TsgcTURNServer › Eventos › OnTURNDeleteAllocation
Se activa después de que se haya eliminado una Allocation, ya sea por renovación a cero por parte del cliente o porque su vida útil ha expirado.
property OnTURNDeleteAllocation: TsgcTURNAllocationEvent;
// TsgcTURNAllocationEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const Allocation: TsgcTURNAllocationItem) of object
—
Se genera una vez por cada desmontaje de Allocation: cuando el cliente emite un REFRESH con lifetime = 0, cuando el tiempo de vida de la asignación expira en el temporizador interno del servidor, o cuando el propio servidor se desactiva (Active := False). Allocation aún expone la instantánea final de Username, RelayIP/RelayPort, Permissions, Channels y el último Expiry — útil para emitir registros de contabilidad, cerrar paneles o liberar recursos por usuario. aSocket puede ser nil cuando la eliminación es impulsada por el temporizador de expiración en lugar de por una solicitud del cliente. La instancia de Allocation es liberada por el servidor inmediatamente después de que el manejador retorne; no retenga la referencia. Se ejecuta en el hilo del listener/temporizador a menos que NotifyEvents lo redirija.
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;