TsgcTURNServer › イベント › OnTURNCreateAllocation
クライアントに対して新しい Allocation が正常に作成された後に発生します。
property OnTURNCreateAllocation: TsgcTURNAllocationEvent;
// TsgcTURNAllocationEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const Allocation: TsgcTURNAllocationItem) of object
—
成功した各ALLOCATEごとに1回、AllocationがサーバーのテーブルにAllocateResponseが追加され、AllocateResponseがクライアントにディスパッチされた直後に発生します。Allocationは完全なコンテキストを公開します: LocalIP/LocalPort(サーバー側のリッスンエンドポイント)、ReflexiveIP/ReflexivePort(クライアントのマップされたアドレス)、RelayIP/RelayPort(XOR-RELAYED-ADDRESSを介してクライアントにアドバタイズされるリレーされたトランスポートアドレス)、Username/Realm、Lifetime / Expiry、およびPermissions / Channelsサブコレクション。運用ダッシュボード、アカウンティング、またはユーザーごとのクォータを更新するために使用してください。Allocationインスタンスはサーバーが所有しています。解放しないでください。割り当てが期限切れになるとOnTURNDeleteAllocationに再び渡されます。NotifyEventsがリダイレクトしない限り、リスナースレッドで実行されます。
procedure TForm1.OnTURNCreateAllocation(Sender: TObject;
const aSocket: TsgcSocketConnection; const Allocation: TsgcTURNAllocationItem);
begin
Memo1.Lines.Add(Format('Allocation created: user=%s relay=%s:%d lifetime=%d',
[Allocation.Username, Allocation.RelayIP, Allocation.RelayPort,
Allocation.Lifetime]));
end;