List all active subscriptions

Hi,

I’m confused about how the ‘wamp.subscription.list’ procedure works, so whenever I call the it shows the following:

However it seems like certain subscriptions are not showing or missing. Whenever I for example try to get a specific subscription using the ‘wamp.subscription.match’ procedure I get a result that does not exist in the ‘wamp.subscription.list’ result.


(the pattern in the screenshot represents the structure of the topic I used)

Is there a specific security setting that I forgot to set in the config or something?
The config I used is:

- uri: '*'
           match: prefix
           allow:
             call: true
             register: true
             publish: true
             subscribe: true
           disclose:
             caller: true
             publisher: true
           cache: true

Any help is appreciated

Hi,

couple of notes … maybe it helps:

  • in your example, the result from wamp.subscription.list for the session ID you queries has 2 subscriptions.
  • to get info about each of these, call wamp.subscription.get. that will tell you stuff like URI pattern and match policy underlying the subscription
  • a given subscription ID can be returned for different session ID - whenever those session have all subscribed to the respective URI/match
  • wamp.subscription.match and wamp.subscription.lookup allows you to simulate what the router does given URI/match when subscribing/publishing
  • there is a complete example of the WAMP meta API here https://github.com/crossbario/crossbar-examples/tree/master/metaapi

Thanks for the reply.

I understand now that the wamp.subscription.list call only lists the subscriptions for the session I am part of.

Is there anyway to list subscriptions across all sessions, in this case all the subscriptions the client has the rights to subscribe/publish to?

lists either for the current (calling) session, or for the session with the ID provided to the call.

subscriptions only exist for sessions, not for client authids via that API.

but you can get a list of all sessions currently joined, and then iterate over IDs and call ^

whether a given authid is generally allowed to subscribe to some topic is of course managed by router permissions (in crossbar at least)

the permissions can be queried via WAMP management API - but only in CrossbarFX, not in Crossbar.io OSS

IOW

all the subscriptions the client has the rights to subscribe/publish

doesn’t make sense. what you can do (in CrossbarFX) is list all permissions (URI pattern and WAMP action) for a given authrole. And you can also query active credentials: which authids are there, and to what authrole and realm are they admitted, and what permission do authroles have on a given realm