TsgcWSPServer_WebRTC › Events › OnBeforeSubscription
피어가 시그널링 채널에 참여하도록 요청할 때 발생하여, 서버에 구독을 수락하거나 거부할 기회를 줍니다.
property OnBeforeSubscription: TsgcWSBeforeSubscriptionEvent;
// TsgcWSBeforeSubscriptionEvent = procedure(Connection: TsgcWSConnection; const Subscription: String; var Accept: Boolean) of object
—
Subscription은 피어가 sgc@subscribe 봉투와 함께 보낸 채널(또는 룸) 이름입니다 — SDP/ICE 릴레이가 작동하려면 두 번째 피어가 사용해야 하는 동일한 문자열입니다. Accept는 기본적으로 True입니다. SUBSCRIBE를 조용히 삭제하여 피어가 채널에 추가되지 않도록 하려면 False로 설정하십시오. 이는 일반적인 액세스 제어 후크(ACL, 초대 토큰, 용량 제한)입니다. Accept가 True로 유지되면 구성 요소가 구독자 테이블에 연결을 추가하고, 클라이언트에 반환되는 구독자 카운터를 증가시키고, OnSubscription을 발생시킵니다.
procedure TForm1.WebRTCServerBeforeSubscription(Connection: TsgcWSConnection;
const Subscription: String; var Accept: Boolean);
begin
// cap rooms at two peers so sessions are strictly one-to-one
Accept := WebRTCSrv.WebRTCSubscriptions.IndexOfName(
WebRTCSrv.Guid + '_' + Subscription) = -1;
Memo1.Lines.Add(Format('[%s] SUBSCRIBE %s -> %s',
[Connection.Guid, Subscription, BoolToStr(Accept, True)]));
end;