TsgcWSPServer_WAMPGebeurtenissen › OnBeforeSubscription

OnBeforeSubscription Event

Wordt geactiveerd wanneer een client een SUBSCRIBE-frame verzendt, waardoor de server de kans krijgt het abonnement te accepteren of te weigeren.

Syntaxis

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

Standaardwaarde

Opmerkingen

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.

Voorbeeld


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;

Terug naar gebeurtenissen