TsgcWSPServer_WAMP › Events › OnBeforeSubscription
Dispara quando um cliente envia um frame SUBSCRIBE, dando ao servidor a chance de aceitar ou rejeitar a assinatura.
property OnBeforeSubscription: TsgcWSBeforeSubscriptionEvent;
// TsgcWSBeforeSubscriptionEvent = procedure(Connection: TsgcWSConnection; const Subscription: String; var Accept: Boolean) of object
—
Subscription é a URI do tópico que o cliente está pedindo para ingressar (já resolvida com base em qualquer prefixo previamente registrado com OnPrefix). Accept é definido como True por padrão, o que significa que o broker registrará o cliente como assinante e começará a encaminhar mensagens EVENT. Defina-o como False para descartar silenciosamente o SUBSCRIBE, o broker não adicionará o cliente ao tópico e nenhuma confirmação é enviada de volta (o WAMP v1 não tem quadro SUBSCRIBED). O uso típico é o controle de acesso: verifique a identidade autenticada anexada a Connection contra uma ACL, política de namespace ou limite de taxa.
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;