TsgcWSPServer_WAMPEventi › OnBeforeSubscription

OnBeforeSubscription Evento

Viene generato quando un client invia un frame SUBSCRIBE, dando al server la possibilità di accettare o rifiutare la sottoscrizione.

Sintassi

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

Valore predefinito

Note

Subscription è l'URI del topic che il client chiede di iscriversi (già risolto rispetto a qualsiasi prefisso precedentemente registrato con OnPrefix). Accept è impostato su True per default, il che significa che il broker registrerà il client come sottoscrittore e inizierà a inoltrare i messaggi EVENT. Impostarlo su False per eliminare silenziosamente il SUBSCRIBE — il broker non aggiungerà il client al topic e non verrà inviata alcuna conferma (WAMP v1 non ha un frame SUBSCRIBED). L'uso tipico è il controllo degli accessi: verificare l'identità autenticata associata a Connection rispetto a un ACL, a una politica di namespace o a un limite di velocità.

Esempio


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;

Torna agli Eventi