WAMPv2 / Prefix Subscribe

#1

Hi all,

now that there are several WAMP implementations in use (incl. 3rd party) and practical experience accumulated, I think it's time to add the missing parts to WAMP.

Missing = things with real-world use cases, and a concrete and sane desire to have it solved in WAMP vs implemented at the application level.

···

==

As a start, I have implemented "subscribe on topic pattern (prefix)" in AutobahnPython:

The WAMPv2 issue is

https://github.com/tavendo/wamp/issues/10

The (experimental) branch is:

https://github.com/tavendo/AutobahnPython/tree/prefixsubscribe

And here is an example

https://github.com/tavendo/AutobahnPython/tree/prefixsubscribe/examples/wamp/pubsub/prefixsub

==

This extends the on-wire format of WAMP in the following way.

With WAMPv1, a subscribe is always sent as

[TYPE_ID_SUBSCRIBE, topic]

With WAMPv2, a subscribe can have a 3rd argument:

[TYPE_ID_SUBSCRIBE, topic, extra]

which must be dict, and the attribute for a "prefix subscribe" would be

extra = {"match": "prefix"}

for example:

[5, "http://example.com/event#", {"match": "prefix"}]

The "match" attribute can be: "exact" | "prefix", where the default is "exact" (in case the attribute is missing from extra, or extra is missing).

==

Any testing, feedback and so on is welcome of course! Also, if you have anything on your mind which should be in WAMPv2 and is not yet listed in the issue list on the WAMP GitHub site, feel free to report here or create an issue.

0 Likes