TsgcWSPServer_WAMP › Events › OnBeforeSubscription
Wird ausgelöst, wenn ein Client einen SUBSCRIBE-Frame sendet, und gibt dem Server die Möglichkeit, das Abonnement zu akzeptieren oder abzulehnen.
property OnBeforeSubscription: TsgcWSBeforeSubscriptionEvent;
// TsgcWSBeforeSubscriptionEvent = procedure(Connection: TsgcWSConnection; const Subscription: String; var Accept: Boolean) of object
—
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.
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;