TsgcTURNServer › イベント › OnTURNDeleteAllocation
クライアントのリフレッシュによるゼロ化またはライフタイムの期限切れにより、アロケーションが削除された後に発生します。
property OnTURNDeleteAllocation: TsgcTURNAllocationEvent;
// TsgcTURNAllocationEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const Allocation: TsgcTURNAllocationItem) of object
—
アロケーションのティアダウンごとに 1 回発生します。クライアントが 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;