TsgcWSPServer_WAMPEvents › OnBeforeSubscription

OnBeforeSubscription 事件

当客户端发送 SUBSCRIBE 帧时触发,服务器有机会接受或拒绝该订阅。

语法

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

默认值

备注

Subscription 是客户端请求加入的主题 URI(已根据之前通过 OnPrefix 注册的前缀进行解析)。Accept 默认设为 True,表示代理将注册客户端为订阅者并开始转发 EVENT 消息。将其设为 False 可静默丢弃 SUBSCRIBE,代理不会将客户端添加到主题,也不发送确认(WAMP v1 没有 SUBSCRIBED 帧)。典型用法是访问控制:根据 ACL、命名空间策略或速率限制检查与 Connection 关联的已认证身份。

示例


procedure TForm1.WAMPServerBeforeSubscription(Connection: TsgcWSConnection;
  const Subscription: String; var Accept: Boolean);
begin
  // allow public topics, reject admin channels for non-admin clients
  Accept := not StartsText('http://example.com/admin/', Subscription);
  Memo1.Lines.Add(Format('[%s] SUBSCRIBE %s -> %s',
    [Connection.Guid, Subscription, BoolToStr(Accept, True)]));
end;

返回事件