TsgcWSPServer_WebRTC › Events › OnBeforeSubscription
ピアがシグナリングチャネルへの参加を要求したときに発火し、サーバーにサブスクリプションを受け入れるか拒否するかの機会を与えます。
property OnBeforeSubscription: TsgcWSBeforeSubscriptionEvent;
// TsgcWSBeforeSubscriptionEvent = procedure(Connection: TsgcWSConnection; const Subscription: String; var Accept: Boolean) of object
—
Subscription はピアが sgc@subscribe エンベロープと共に送信したチャネル(またはルーム)名です。SDP/ICEリレーが機能するには、2番目のピアが同じ文字列を使用する必要があります。Accept はデフォルトで True です。False に設定すると SUBSCRIBE を静かにドロップし、ピアがチャネルに追加されなくなります。これは典型的なアクセス制御フック(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;