TsgcWSPServer_WAMP › 이벤트 › OnBeforeSubscription
클라이언트가 SUBSCRIBE 프레임을 보낼 때 발생하여, 서버가 구독을 수락하거나 거부할 기회를 제공합니다.
property OnBeforeSubscription: TsgcWSBeforeSubscriptionEvent;
// TsgcWSBeforeSubscriptionEvent = procedure(Connection: TsgcWSConnection; const Subscription: String; var Accept: Boolean) of object
—
Subscription은 클라이언트가 참여를 요청하는 토픽 URI입니다(이미 OnPrefix로 이전에 등록된 prefix에 대해 해석됨). Accept는 기본적으로 True로 설정되며, 이는 브로커가 클라이언트를 구독자로 등록하고 EVENT 메시지 전달을 시작함을 의미합니다. SUBSCRIBE를 자동으로 삭제하려면 False로 설정하십시오. 브로커는 클라이언트를 토픽에 추가하지 않으며 확인이 다시 전송되지 않습니다(WAMP v1에는 SUBSCRIBED 프레임이 없습니다). 일반적인 용도는 접근 제어입니다. Connection에 첨부된 인증된 신원을 ACL, 네임스페이스 정책 또는 속도 제한에 대해 확인하십시오.
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;