TsgcWSPServer_WAMPEvents › OnBeforeSubscription

OnBeforeSubscription Ereignis

Wird ausgelöst, wenn ein Client einen SUBSCRIBE-Frame sendet, und gibt dem Server die Möglichkeit, das Abonnement zu akzeptieren oder abzulehnen.

Syntax

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

Standardwert

Hinweise

Subscription ist die Topic-URI, der der Client beitreten möchte (bereits gegen ein zuvor mit OnPrefix registriertes Präfix aufgelöst). Accept ist standardmäßig auf True gesetzt, was bedeutet, dass der Broker den Client als Abonnenten registriert und beginnt, EVENT-Nachrichten weiterzuleiten. Setzen Sie es auf False, um das SUBSCRIBE stillschweigend zu verwerfen — der Broker fügt den Client nicht zum Topic hinzu und es wird keine Bestätigung zurückgesendet (WAMP v1 hat keinen SUBSCRIBED-Frame). Typische Verwendung ist die Zugriffssteuerung: prüfen Sie die mit Connection verbundene authentifizierte Identität gegen eine ACL, Namespace-Richtlinie oder ein Rate-Limit.

Beispiel


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;

Zurück zu Ereignissen