TsgcWSPServer_WAMP › Événements › OnBeforeSubscription
Se déclenche lorsqu'un client envoie une trame SUBSCRIBE, donnant au serveur la possibilité d'accepter ou de rejeter l'abonnement.
property OnBeforeSubscription: TsgcWSBeforeSubscriptionEvent;
// TsgcWSBeforeSubscriptionEvent = procedure(Connection: TsgcWSConnection; const Subscription: String; var Accept: Boolean) of object
—
Subscription est l'URI du sujet que le client demande à rejoindre (déjà résolu par rapport à tout préfixe enregistré précédemment avec OnPrefix). Accept est défini sur True par défaut, ce qui signifie que le courtier enregistrera le client en tant qu'abonné et commencera à transmettre les messages EVENT. Définissez-le sur False pour ignorer silencieusement le SUBSCRIBE — le courtier n'ajoutera pas le client au sujet et aucune confirmation n'est renvoyée (WAMP v1 n'a pas de trame SUBSCRIBED). Utilisation typique : contrôle d'accès : vérifiez l'identité authentifiée attachée à Connection par rapport à une ACL, une politique d'espace de noms ou une limite de débit.
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;