TsgcWSPServer_WAMP › Gebeurtenissen › OnBeforeSubscription
Wordt geactiveerd wanneer een client een SUBSCRIBE-frame verzendt, waardoor de server de kans krijgt het abonnement te accepteren of te weigeren.
property OnBeforeSubscription: TsgcWSBeforeSubscriptionEvent;
// TsgcWSBeforeSubscriptionEvent = procedure(Connection: TsgcWSConnection; const Subscription: String; var Accept: Boolean) of object
—
Subscription is de onderwerp-URI waarvoor de client zich wil aanmelden (al omgezet via een eerder geregistreerd voorvoegsel met OnPrefix). Accept is standaard ingesteld op True, wat betekent dat de broker de client als abonnee registreert en begint met het doorsturen van EVENT-berichten. Stel het in op False om het SUBSCRIBE stilzwijgend te laten vallen — de broker voegt de client niet toe aan het onderwerp en er wordt geen bevestiging teruggestuurd (WAMP v1 heeft geen SUBSCRIBED-frame). Typisch gebruik is toegangscontrole: controleer de geverifieerde identiteit die is gekoppeld aan Connection aan de hand van een ACL, naamruimtebeleid of snelheidslimiet.
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;