TsgcTURNServer › 이벤트 › OnTURNCreateAllocation
클라이언트에 대해 새 Allocation이 성공적으로 생성된 후 발생합니다.
property OnTURNCreateAllocation: TsgcTURNAllocationEvent;
// TsgcTURNAllocationEvent = procedure(Sender: TObject; const aSocket: TsgcSocketConnection; const Allocation: TsgcTURNAllocationItem) of object
—
성공적인 ALLOCATE당 한 번씩, Allocation이 서버의 내부 테이블에 추가되고 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;