TsgcWSPServer_WebRTCEvents › OnBeforeSubscription

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、招待トークン、容量上限)です。AcceptTrue のままの場合、コンポーネントは接続をサブスクライバーテーブルに追加し、クライアントに返されるサブスクライバーカウンターをインクリメントして 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;

イベントに戻る