TsgcTURNServer › 이벤트 › OnTURNDeleteAllocation
Allocation이 제거된 후에 발생합니다. 클라이언트의 refresh-to-zero에 의해서거나 수명이 만료되었기 때문입니다.
property OnTURNDeleteAllocation: TsgcTURNAllocationEvent;
// TsgcTURNAllocationEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const Allocation: TsgcTURNAllocationItem) of object
—
Allocation 해체당 한 번 발생합니다: 클라이언트가 lifetime = 0으로 REFRESH를 발행할 때, 서버의 내부 타이머에서 할당 수명이 만료될 때, 또는 서버 자체가 비활성화될 때(Active := False)입니다. Allocation은 여전히 Username, RelayIP/RelayPort, Permissions, Channels 및 마지막 Expiry의 최종 스냅샷을 노출하며, 이는 회계 기록을 발행하거나, 대시보드를 닫거나, 사용자별 리소스를 해제하는 데 유용합니다. 삭제가 클라이언트 요청이 아닌 만료 타이머에 의해 구동되는 경우 aSocket은 nil일 수 있습니다. Allocation 인스턴스는 처리기가 반환된 직후 서버에 의해 해제됩니다. 참조를 유지하지 마십시오. NotifyEvents가 리디렉션하지 않는 한 리스너/타이머 스레드에서 실행됩니다.
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;