TsgcWSPServer_WAMP › Events › OnBeforeSubscription
Bir istemci bir SUBSCRIBE çerçevesi gönderdiğinde tetiklenir, sunucuya aboneliği kabul etme veya reddetme şansı verir.
property OnBeforeSubscription: TsgcWSBeforeSubscriptionEvent;
// TsgcWSBeforeSubscriptionEvent = procedure(Connection: TsgcWSConnection; const Subscription: String; var Accept: Boolean) of object
—
Subscription, istemcinin katılmak istediği konu URI'sidir (daha önce OnPrefix ile kaydedilmiş herhangi bir önekle çözümlenmiş). Accept varsayılan olarak True olarak ayarlanır, yani broker istemciyi bir abone olarak kaydeder ve EVENT mesajlarını iletmeye başlar. SUBSCRIBE'ı sessizce düşürmek için False olarak ayarlayın — broker istemciyi konuya eklemez ve geri hiçbir onay gönderilmez (WAMP v1'in SUBSCRIBED çerçevesi yoktur). Tipik kullanım erişim kontrolüdür: Connection'a eklenen kimliği doğrulanmış kimliği bir ACL'ye, ad alanı politikasına veya oran sınırına karşı kontrol edin.
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;