TsgcWSPServer_WebRTC事件 › OnBeforeSubscription

OnBeforeSubscription 事件

当对端请求加入信令频道时触发,使服务器有机会接受或拒绝订阅。

语法

property OnBeforeSubscription: TsgcWSBeforeSubscriptionEvent;
// TsgcWSBeforeSubscriptionEvent = procedure(Connection: TsgcWSConnection; const Subscription: String; var Accept: Boolean) of object

默认值

备注

Subscription 是对端通过其 sgc@subscribe 信封发送的通道(或房间)名称,第二个对端必须使用相同的字符串才能使 SDP/ICE 中继正常工作。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;

返回事件