WAMP v2 Spec: Basic Profile

#1

Hi,

we have now split the WAMP v2 specification into two parts:

* Part 1: WAMP Basic Profile
* Part 2: WAMP Advanced Profile

https://github.com/tavendo/WAMP/tree/master/spec

The "Basic Profile" document is now considered stable, which means any
changes will only be for fixing bugs in the spec. The message and feature set is frozen.

The "Advanced Profile" should be considered work-in-progress in large parts. This will need some time to stabilize ..

Cheers,
/Tobias

0 Likes

#2

Hey Tobias,

I’m working on learning the ins and outs of WAMP V.2 and I’m having some trouble with Feature Announcement as specified in the Basic Profile specs. After the hello message is sent, if I want to announce additional roles and features my client supports, where do I put that dictionary? I tried putting it after the Realm|Uri (in the join method) as it states in the specs but I keep getting an error (join() takes exactly 2 arguments, you are providing 3). I may just be missing something small but I’ve been working on this for a few days and just can’t seem to make progress. Thoughts?

···

On Wednesday, February 19, 2014 1:45:59 PM UTC-5, Tobias Oberstein wrote:

Hi,

we have now split the WAMP v2 specification into two parts:

  • Part 1: WAMP Basic Profile

  • Part 2: WAMP Advanced Profile

https://github.com/tavendo/WAMP/tree/master/spec

The “Basic Profile” document is now considered stable, which means any

changes will only be for fixing bugs in the spec. The message and
feature set is frozen.

The “Advanced Profile” should be considered work-in-progress in large
parts. This will need some time to stabilize …

Cheers,

/Tobias

0 Likes

#3

Jess,

Hey Tobias,

I'm working on learning the ins and outs of WAMP V.2 and I'm having some
trouble with Feature Announcement as specified in the Basic Profile
specs. After the hello message is sent, if I want to announce additional
roles and features my client supports, where do I put that dictionary? I

Are you developing a new WAMP2 client library?

tried putting it after the Realm|Uri (in the join method) as it states
in the specs but I keep getting an error (join() takes exactly 2
arguments, you are providing 3). I may just be missing something small

Are we talking about WAMP2 API (and if so, which library?) or WAMP2 protocol?

but I've been working on this for a few days and just can't seem to make
progress. Thoughts?

Have a look at the attached screenshot. This is AutobahnJS running against Crossbar.io/AutobahnPython.

You can also try live:

https://demo.crossbar.io/

Open any of the demos, and use Chrome network inspector to look at the WebSocket messages transmitted.

/Tobias

···

Am 18.03.2014 17:00, schrieb Jess Updegrove:

On Wednesday, February 19, 2014 1:45:59 PM UTC-5, Tobias Oberstein wrote:

    Hi,

    we have now split the WAMP v2 specification into two parts:

    * Part 1: WAMP Basic Profile
    * Part 2: WAMP Advanced Profile

    https://github.com/tavendo/WAMP/tree/master/spec
    <https://github.com/tavendo/WAMP/tree/master/spec>

    The "Basic Profile" document is now considered stable, which means any
    changes will only be for fixing bugs in the spec. The message and
    feature set is frozen.

    The "Advanced Profile" should be considered work-in-progress in large
    parts. This will need some time to stabilize ..

    Cheers,
    /Tobias

--
You received this message because you are subscribed to the Google
Groups "Autobahn" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to autobahnws+...@googlegroups.com
<mailto:autobahnws+...@googlegroups.com>.
For more options, visit https://groups.google.com/d/optout.

0 Likes

#4

Tobias,

Forgive me as I am a VERY new programmer… My first assignment is simply to learn about the features WAMP V2 provides so that we can update our current system that uses WAMP1. I’m only working with Python 2.7 mind you, and I have no idea what Crossbar is so I’ll look into that then. I’m talking about this section >https://github.com/tavendo/WAMP/blob/master/spec/basic.md#session-establishment< where it specifies “A client must announce the roles it supports via Hello.Details.roles|dict”. I put together that the join method under http://autobahn.ws/static/reference/python/wamp2.html#autobahn.wamp.interfaces.ISession sends the hello message, so I tried to add the dictionary there to announce the roles. I know this is incorrect, but I’ve read through ALL the documents multiple times and simply cannot find a method/way to announce the roles in the hello message. Where/when exactly do I specify the roles?

···

On Tuesday, March 18, 2014 12:09:09 PM UTC-4, Tobias Oberstein wrote:

Jess,

Am 18.03.2014 17:00, schrieb Jess Updegrove:

Hey Tobias,

I’m working on learning the ins and outs of WAMP V.2 and I’m having some

trouble with Feature Announcement as specified in the Basic Profile

specs. After the hello message is sent, if I want to announce additional

roles and features my client supports, where do I put that dictionary? I

Are you developing a new WAMP2 client library?

tried putting it after the Realm|Uri (in the join method) as it states

in the specs but I keep getting an error (join() takes exactly 2

arguments, you are providing 3). I may just be missing something small

Are we talking about WAMP2 API (and if so, which library?) or WAMP2
protocol?

but I’ve been working on this for a few days and just can’t seem to make

progress. Thoughts?

Have a look at the attached screenshot. This is AutobahnJS running
against Crossbar.io/AutobahnPython.

You can also try live:

https://demo.crossbar.io/

Open any of the demos, and use Chrome network inspector to look at the
WebSocket messages transmitted.

/Tobias

On Wednesday, February 19, 2014 1:45:59 PM UTC-5, Tobias Oberstein wrote:

Hi,
we have now split the WAMP v2 specification into two parts:
* Part 1: WAMP Basic Profile
* Part 2: WAMP Advanced Profile
[https://github.com/tavendo/WAMP/tree/master/spec](https://github.com/tavendo/WAMP/tree/master/spec)
<[https://github.com/tavendo/WAMP/tree/master/spec](https://github.com/tavendo/WAMP/tree/master/spec)>
The "Basic Profile" document is now considered stable, which means any
changes will only be for fixing bugs in the spec. The message and
feature set is frozen.
The "Advanced Profile" should be considered work-in-progress in large
parts. This will need some time to stabilize ..
Cheers,
/Tobias
0 Likes

#5

Tobias,

Forgive me as I am a VERY new programmer... My first assignment is
simply to learn about the features WAMP V2 provides so that we can
update our current system that uses WAMP1. I'm only working with Python

What is that system currently based on?

Is it using AutobahnPython on both client and server, or which?

2.7 mind you, and I have no idea what Crossbar is so I'll look into that
then. I'm talking about this section
>https://github.com/tavendo/WAMP/blob/master/spec/basic.md#session-establishment< where it specifies "A client must announce the roles it supports via Hello.Details.roles|dict". I put together that the join method under <http://autobahn.ws/static/reference/python/wamp2.html#autobahn.wamp.interfaces.ISession> sends the hello message, so I tried to add the dictionary there to announce the roles. I know this is incorrect, but I've read through ALL the documents multiple times and simply cannot find a method/way to announce the roles in the hello message. Where/when exactly do I specify the roles?

Ah;)

When you use Autobahn|Python, sending the HELLO message is done _internally_ for you.

It is not exposed in a user API.

Autobahn>Python knows what features it supports and which not.

In fact, the whole WAMP _protocol_ details stuff is hidden from the user.

If you really want, you can look at the implementation here:

https://github.com/tavendo/AutobahnPython/blob/master/autobahn/autobahn/wamp/protocol.py#L331

https://github.com/tavendo/AutobahnPython/blob/master/autobahn/autobahn/wamp/role.py

https://github.com/tavendo/AutobahnPython/blob/master/autobahn/autobahn/wamp/message.py#L227

···

Am 18.03.2014 17:20, schrieb Jess Updegrove:

On Tuesday, March 18, 2014 12:09:09 PM UTC-4, Tobias Oberstein wrote:

    Jess,

    Am 18.03.2014 17:00, schrieb Jess Updegrove:
     > Hey Tobias,
     >
     > I'm working on learning the ins and outs of WAMP V.2 and I'm
    having some
     > trouble with Feature Announcement as specified in the Basic Profile
     > specs. After the hello message is sent, if I want to announce
    additional
     > roles and features my client supports, where do I put that
    dictionary? I

    Are you developing a new WAMP2 client library?

     > tried putting it after the Realm|Uri (in the join method) as it
    states
     > in the specs but I keep getting an error (join() takes exactly 2
     > arguments, you are providing 3). I may just be missing something
    small

    Are we talking about WAMP2 API (and if so, which library?) or WAMP2
    protocol?

     > but I've been working on this for a few days and just can't seem
    to make
     > progress. Thoughts?

    Have a look at the attached screenshot. This is AutobahnJS running
    against Crossbar.io/AutobahnPython.

    You can also try live:

    https://demo.crossbar.io/

    Open any of the demos, and use Chrome network inspector to look at the
    WebSocket messages transmitted.

    /Tobias

     >
     > On Wednesday, February 19, 2014 1:45:59 PM UTC-5, Tobias > Oberstein wrote:
     >
     > Hi,
     >
     > we have now split the WAMP v2 specification into two parts:
     >
     > * Part 1: WAMP Basic Profile
     > * Part 2: WAMP Advanced Profile
     >
     > https://github.com/tavendo/WAMP/tree/master/spec
    <https://github.com/tavendo/WAMP/tree/master/spec>
     > <https://github.com/tavendo/WAMP/tree/master/spec
    <https://github.com/tavendo/WAMP/tree/master/spec>>
     >
     > The "Basic Profile" document is now considered stable, which
    means any
     > changes will only be for fixing bugs in the spec. The message
    and
     > feature set is frozen.
     >
     > The "Advanced Profile" should be considered work-in-progress
    in large
     > parts. This will need some time to stabilize ..
     >
     > Cheers,
     > /Tobias

--
You received this message because you are subscribed to the Google
Groups "Autobahn" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to autobahnws+...@googlegroups.com
<mailto:autobahnws+...@googlegroups.com>.
For more options, visit https://groups.google.com/d/optout.

0 Likes

#6

The little test clients I’m making are based off of the examples posted on GitHub (https://github.com/tavendo/AutobahnPython/tree/master/examples/twisted/wamp/basic/pubsub), and everything I’m doing is AutobahnPython.
If the features are hidden, how would the advanced features eventually be specified by the client? The only reason I was playing around with this is because the stable parts of the Advanced Profile specifically “Support for this feature MUST be announced via Hello.Details.roles. etc”. Should I assume this is all explicitly supported and I can change the options via PUBLISH.Options? If so, I think the documentation could be a little clearer regarding that fact.

Thanks for you quick replies!
Jess

···

On Tuesday, March 18, 2014 12:27:05 PM UTC-4, Tobias Oberstein wrote:

Am 18.03.2014 17:20, schrieb Jess Updegrove:

Tobias,

Forgive me as I am a VERY new programmer… My first assignment is

simply to learn about the features WAMP V2 provides so that we can

update our current system that uses WAMP1. I’m only working with Python

What is that system currently based on?

Is it using AutobahnPython on both client and server, or which?

2.7 mind you, and I have no idea what Crossbar is so I’ll look into that

then. I’m talking about this section

https://github.com/tavendo/WAMP/blob/master/spec/basic.md#session-establishment< where it specifies “A client must announce the roles it supports via Hello.Details.roles|dict”. I put together that the join method under <http://autobahn.ws/static/reference/python/wamp2.html#autobahn.wamp.interfaces.ISession> sends the hello message, so I tried to add the dictionary there to announce the roles. I know this is incorrect, but I’ve read through ALL the documents multiple times and simply cannot find a method/way to announce the roles in the hello message. Where/when exactly do I specify the roles?

Ah;)

When you use Autobahn|Python, sending the HELLO message is done
internally for you.

It is not exposed in a user API.

Autobahn>Python knows what features it supports and which not.

In fact, the whole WAMP protocol details stuff is hidden from the user.

If you really want, you can look at the implementation here:

https://github.com/tavendo/AutobahnPython/blob/master/autobahn/autobahn/wamp/protocol.py#L331

https://github.com/tavendo/AutobahnPython/blob/master/autobahn/autobahn/wamp/role.py

https://github.com/tavendo/AutobahnPython/blob/master/autobahn/autobahn/wamp/message.py#L227

On Tuesday, March 18, 2014 12:09:09 PM UTC-4, Tobias Oberstein wrote:

Jess,
Am 18.03.2014 17:00, schrieb Jess Updegrove:
 > Hey Tobias,
 >
 > I'm working on learning the ins and outs of WAMP V.2 and I'm
having some
 > trouble with Feature Announcement as specified in the Basic Profile
 > specs. After the hello message is sent, if I want to announce
additional
 > roles and features my client supports, where do I put that
dictionary? I
Are you developing a new WAMP2 client library?
 > tried putting it after the Realm|Uri (in the join method) as it
states
 > in the specs but I keep getting an error (join() takes exactly 2
 > arguments, you are providing 3). I may just be missing something
small
Are we talking about WAMP2 API (and if so, which library?) or WAMP2
protocol?
 > but I've been working on this for a few days and just can't seem
to make
 > progress. Thoughts?
Have a look at the attached screenshot. This is AutobahnJS running
against Crossbar.io/AutobahnPython.
You can also try live:
[https://demo.crossbar.io/](https://demo.crossbar.io/)
Open any of the demos, and use Chrome network inspector to look at the
WebSocket messages transmitted.
/Tobias
 >
 > On Wednesday, February 19, 2014 1:45:59 PM UTC-5, Tobias >  > >     Oberstein wrote:
 >
 >     Hi,
 >
 >     we have now split the WAMP v2 specification into two parts:
 >
 >     * Part 1: WAMP Basic Profile
 >     * Part 2: WAMP Advanced Profile
 >
 > [https://github.com/tavendo/WAMP/tree/master/spec](https://github.com/tavendo/WAMP/tree/master/spec)
<[https://github.com/tavendo/WAMP/tree/master/spec](https://github.com/tavendo/WAMP/tree/master/spec)>
 >     <[https://github.com/tavendo/WAMP/tree/master/spec](https://github.com/tavendo/WAMP/tree/master/spec)
<[https://github.com/tavendo/WAMP/tree/master/spec](https://github.com/tavendo/WAMP/tree/master/spec)>>
 >
 >     The "Basic Profile" document is now considered stable, which
means any
 >     changes will only be for fixing bugs in the spec. The message
and
 >     feature set is frozen.
 >
 >     The "Advanced Profile" should be considered work-in-progress
in large
 >     parts. This will need some time to stabilize ..
 >
 >     Cheers,
 >     /Tobias

You received this message because you are subscribed to the Google

Groups “Autobahn” group.

To unsubscribe from this group and stop receiving emails from it, send

an email to autobahnws+...@googlegroups.com

mailto:autobahnws+unsub...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

0 Likes

#7

The little test clients I'm making are based off of the examples posted
on GitHub
(<https://github.com/tavendo/AutobahnPython/tree/master/examples/twisted/wamp/basic/pubsub>),
and everything I'm doing is AutobahnPython.

If the features are hidden, how would the advanced features eventually
be specified by the client? The only reason I was playing around with

The router that is included with AutobahnPython already specifies exactly the features it supports

https://github.com/tavendo/AutobahnPython/blob/master/autobahn/autobahn/wamp/broker.py#L72

The client that is included with AutobahnPython does not announce it .. and that is a bug;)

https://github.com/tavendo/AutobahnPython/issues/198

So you don't need to do anything but waiting for the bug to be resolved;) But since the router included currently does not enforce the non-use of a feature when a client does not announce it, it'll just work. And the non-enforcement is another omission. Well .. so much to do ..

In general, the advanced features supported by a WAMP implementation is not something a _user_ might modify (since support for those features requires machinery deep inside the implementation).

this is because the stable parts of the Advanced Profile specifically
"Support for this feature MUST be announced via Hello.Details.roles.
etc". Should I assume this is all explicitly supported and I can change
the options via PUBLISH.Options? If so, I think the documentation could

Yes. The example demonstrate everything which is currently implemented.

be a /little/ clearer regarding that fact.

I totally agree. We can use any help, so if you want to contribute docs, pls get in touch!

/Tobias

···

Am 18.03.2014 17:34, schrieb Jess Updegrove:

Thanks for you quick replies!
Jess

On Tuesday, March 18, 2014 12:27:05 PM UTC-4, Tobias Oberstein wrote:

    Am 18.03.2014 17:20, schrieb Jess Updegrove:
     > Tobias,
     >
     > Forgive me as I am a VERY new programmer... My first assignment is
     > simply to learn about the features WAMP V2 provides so that we can
     > update our current system that uses WAMP1. I'm only working with
    Python

    What is that system currently based on?

    Is it using AutobahnPython on both client and server, or which?

     > 2.7 mind you, and I have no idea what Crossbar is so I'll look
    into that
     > then. I'm talking about this section
     >
      >https://github.com/tavendo/WAMP/blob/master/spec/basic.md#session-establishment< where it specifies "A client must announce the roles it supports via Hello.Details.roles|dict". I put together that the join method under <http://autobahn.ws/static/reference/python/wamp2.html#autobahn.wamp.interfaces.ISession> sends the hello message, so I tried to add the dictionary there to announce the roles. I know this is incorrect, but I've read through ALL the documents multiple times and simply cannot find a method/way to announce the roles in the hello message. Where/when exactly do I specify the roles?

    Ah;)

    When you use Autobahn|Python, sending the HELLO message is done
    _internally_ for you.

    It is not exposed in a user API.

    Autobahn>Python knows what features it supports and which not.

    In fact, the whole WAMP _protocol_ details stuff is hidden from the
    user.

    If you really want, you can look at the implementation here:

    https://github.com/tavendo/AutobahnPython/blob/master/autobahn/autobahn/wamp/protocol.py#L331
    <https://github.com/tavendo/AutobahnPython/blob/master/autobahn/autobahn/wamp/protocol.py#L331>

    https://github.com/tavendo/AutobahnPython/blob/master/autobahn/autobahn/wamp/role.py
    <https://github.com/tavendo/AutobahnPython/blob/master/autobahn/autobahn/wamp/role.py>

    https://github.com/tavendo/AutobahnPython/blob/master/autobahn/autobahn/wamp/message.py#L227
    <https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Ftavendo%2FAutobahnPython%2Fblob%2Fmaster%2Fautobahn%2Fautobahn%2Fwamp%2Fmessage.py%23L227&sa=D&sntz=1&usg=AFQjCNENi5rGVMMrBo43TUXbC32fBiOqTg>

     >
     > On Tuesday, March 18, 2014 12:09:09 PM UTC-4, Tobias Oberstein > wrote:
     >
     > Jess,
     >
     > Am 18.03.2014 17:00, schrieb Jess Updegrove:
     > > Hey Tobias,
     > >
     > > I'm working on learning the ins and outs of WAMP V.2 and I'm
     > having some
     > > trouble with Feature Announcement as specified in the
    Basic Profile
     > > specs. After the hello message is sent, if I want to announce
     > additional
     > > roles and features my client supports, where do I put that
     > dictionary? I
     >
     > Are you developing a new WAMP2 client library?
     >
     > > tried putting it after the Realm|Uri (in the join method)
    as it
     > states
     > > in the specs but I keep getting an error (join() takes
    exactly 2
     > > arguments, you are providing 3). I may just be missing
    something
     > small
     >
     > Are we talking about WAMP2 API (and if so, which library?) or
    WAMP2
     > protocol?
     >
     > > but I've been working on this for a few days and just
    can't seem
     > to make
     > > progress. Thoughts?
     >
     > Have a look at the attached screenshot. This is AutobahnJS
    running
     > against Crossbar.io/AutobahnPython.
     >
     > You can also try live:
     >
     > https://demo.crossbar.io/
     >
     > Open any of the demos, and use Chrome network inspector to
    look at the
     > WebSocket messages transmitted.
     >
     > /Tobias
     >
     > >
     > > On Wednesday, February 19, 2014 1:45:59 PM UTC-5, Tobias > > Oberstein wrote:
     > >
     > > Hi,
     > >
     > > we have now split the WAMP v2 specification into two
    parts:
     > >
     > > * Part 1: WAMP Basic Profile
     > > * Part 2: WAMP Advanced Profile
     > >
     > > https://github.com/tavendo/WAMP/tree/master/spec
    <https://github.com/tavendo/WAMP/tree/master/spec>
     > <https://github.com/tavendo/WAMP/tree/master/spec
    <https://github.com/tavendo/WAMP/tree/master/spec>>
     > > <https://github.com/tavendo/WAMP/tree/master/spec
    <https://github.com/tavendo/WAMP/tree/master/spec>
     > <https://github.com/tavendo/WAMP/tree/master/spec
    <https://github.com/tavendo/WAMP/tree/master/spec>>>
     > >
     > > The "Basic Profile" document is now considered stable,
    which
     > means any
     > > changes will only be for fixing bugs in the spec. The
    message
     > and
     > > feature set is frozen.
     > >
     > > The "Advanced Profile" should be considered
    work-in-progress
     > in large
     > > parts. This will need some time to stabilize ..
     > >
     > > Cheers,
     > > /Tobias
     >
     > --
     > You received this message because you are subscribed to the Google
     > Groups "Autobahn" group.
     > To unsubscribe from this group and stop receiving emails from it,
    send
     > an email to autobah...@googlegroups.com <javascript:>
     > <mailto:autobahnws+...@googlegroups.com <javascript:>>.
     > For more options, visit https://groups.google.com/d/optout
    <https://groups.google.com/d/optout>.

--
You received this message because you are subscribed to the Google
Groups "Autobahn" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to autobahnws+...@googlegroups.com
<mailto:autobahnws+...@googlegroups.com>.
For more options, visit https://groups.google.com/d/optout.

0 Likes

#8

Glad to know it’s a bug and not me! :wink: Thank you for the replies, I will definitely let you know of any other “bugs” I may stumble upon.

···

On Tuesday, March 18, 2014 12:48:28 PM UTC-4, Tobias Oberstein wrote:

Am 18.03.2014 17:34, schrieb Jess Updegrove:

The little test clients I’m making are based off of the examples posted

on GitHub

(<https://github.com/tavendo/AutobahnPython/tree/master/examples/twisted/wamp/basic/pubsub>),

and everything I’m doing is AutobahnPython.

If the features are hidden, how would the advanced features eventually

be specified by the client? The only reason I was playing around with

The router that is included with AutobahnPython already specifies
exactly the features it supports

https://github.com/tavendo/AutobahnPython/blob/master/autobahn/autobahn/wamp/broker.py#L72

The client that is included with AutobahnPython does not announce it …
and that is a bug;)

https://github.com/tavendo/AutobahnPython/issues/198

So you don’t need to do anything but waiting for the bug to be
resolved;) But since the router included currently does not enforce the
non-use of a feature when a client does not announce it, it’ll just
work. And the non-enforcement is another omission. Well … so much to do …

In general, the advanced features supported by a WAMP implementation is
not something a user might modify (since support for those features
requires machinery deep inside the implementation).

this is because the stable parts of the Advanced Profile specifically

"Support for this feature MUST be announced via Hello.Details.roles.

etc". Should I assume this is all explicitly supported and I can change

the options via PUBLISH.Options? If so, I think the documentation could

Yes. The example demonstrate everything which is currently implemented.

be a /little/ clearer regarding that fact.

I totally agree. We can use any help, so if you want to contribute docs,
pls get in touch!

/Tobias

Thanks for you quick replies!

Jess

On Tuesday, March 18, 2014 12:27:05 PM UTC-4, Tobias Oberstein wrote:

Am 18.03.2014 17:20, schrieb Jess Updegrove:
 > Tobias,
 >
 > Forgive me as I am a VERY new programmer... My first assignment is
 > simply to learn about the features WAMP V2 provides so that we can
 > update our current system that uses WAMP1. I'm only working with
Python
What is that system currently based on?
Is it using AutobahnPython on both client and server, or which?
 > 2.7 mind you, and I have no idea what Crossbar is so I'll look
into that
 > then. I'm talking about this section
 >
  >[https://github.com/tavendo/WAMP/blob/master/spec/basic.md#session-establishment](https://github.com/tavendo/WAMP/blob/master/spec/basic.md#session-establishment) <[https://github.com/tavendo/WAMP/blob/master/spec/basic.md#session-establishment](https://github.com/tavendo/WAMP/blob/master/spec/basic.md#session-establishment)>< where it specifies "A client must announce the roles it supports via Hello.Details.roles|dict". I put together that the join method under <[http://autobahn.ws/static/reference/python/wamp2.html#autobahn.wamp.interfaces.ISession](http://autobahn.ws/static/reference/python/wamp2.html#autobahn.wamp.interfaces.ISession) <[http://autobahn.ws/static/reference/python/wamp2.html#autobahn.wamp.interfaces.ISession](http://autobahn.ws/static/reference/python/wamp2.html#autobahn.wamp.interfaces.ISession)>> sends the hello message, so I tried to add the dictionary there to announce the roles. I know this is incorrect, but I've read through ALL the documents multiple times and simply cannot find a method/way to announce the roles in the hello message. Where/when exactly do I specify the roles?
Ah;)
When you use Autobahn|Python, sending the HELLO message is done
_internally_ for you.
It is not exposed in a user API.
Autobahn>Python knows what features it supports and which not.
In fact, the whole WAMP _protocol_ details stuff is hidden from the
user.
If you really want, you can look at the implementation here:
[https://github.com/tavendo/AutobahnPython/blob/master/autobahn/autobahn/wamp/protocol.py#L331](https://github.com/tavendo/AutobahnPython/blob/master/autobahn/autobahn/wamp/protocol.py#L331)
<[https://github.com/tavendo/AutobahnPython/blob/master/autobahn/autobahn/wamp/protocol.py#L331](https://github.com/tavendo/AutobahnPython/blob/master/autobahn/autobahn/wamp/protocol.py#L331)>
[https://github.com/tavendo/AutobahnPython/blob/master/autobahn/autobahn/wamp/role.py](https://github.com/tavendo/AutobahnPython/blob/master/autobahn/autobahn/wamp/role.py)
<[https://github.com/tavendo/AutobahnPython/blob/master/autobahn/autobahn/wamp/role.py](https://github.com/tavendo/AutobahnPython/blob/master/autobahn/autobahn/wamp/role.py)>
[https://github.com/tavendo/AutobahnPython/blob/master/autobahn/autobahn/wamp/message.py#L227](https://github.com/tavendo/AutobahnPython/blob/master/autobahn/autobahn/wamp/message.py#L227)
<[https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Ftavendo%2FAutobahnPython%2Fblob%2Fmaster%2Fautobahn%2Fautobahn%2Fwamp%2Fmessage.py%23L227&sa=D&sntz=1&usg=AFQjCNENi5rGVMMrBo43TUXbC32fBiOqTg](https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Ftavendo%2FAutobahnPython%2Fblob%2Fmaster%2Fautobahn%2Fautobahn%2Fwamp%2Fmessage.py%23L227&sa=D&sntz=1&usg=AFQjCNENi5rGVMMrBo43TUXbC32fBiOqTg)>
 >
 > On Tuesday, March 18, 2014 12:09:09 PM UTC-4, Tobias Oberstein >  > >     wrote:
 >
 >     Jess,
 >
 >     Am 18.03.2014 17:00, schrieb Jess Updegrove:
 >      > Hey Tobias,
 >      >
 >      > I'm working on learning the ins and outs of WAMP V.2 and I'm
 >     having some
 >      > trouble with Feature Announcement as specified in the
Basic Profile
 >      > specs. After the hello message is sent, if I want to announce
 >     additional
 >      > roles and features my client supports, where do I put that
 >     dictionary? I
 >
 >     Are you developing a new WAMP2 client library?
 >
 >      > tried putting it after the Realm|Uri (in the join method)
as it
 >     states
 >      > in the specs but I keep getting an error (join() takes
exactly 2
 >      > arguments, you are providing 3). I may just be missing
something
 >     small
 >
 >     Are we talking about WAMP2 API (and if so, which library?) or
WAMP2
 >     protocol?
 >
 >      > but I've been working on this for a few days and just
can't seem
 >     to make
 >      > progress. Thoughts?
 >
 >     Have a look at the attached screenshot. This is AutobahnJS
running
 >     against Crossbar.io/AutobahnPython.
 >
 >     You can also try live:
 >
 > [https://demo.crossbar.io/](https://demo.crossbar.io/)
 >
 >     Open any of the demos, and use Chrome network inspector to
look at the
 >     WebSocket messages transmitted.
 >
 >     /Tobias
 >
 >      >
 >      > On Wednesday, February 19, 2014 1:45:59 PM UTC-5, Tobias >  > >      >     Oberstein wrote:
 >      >
 >      >     Hi,
 >      >
 >      >     we have now split the WAMP v2 specification into two
parts:
 >      >
 >      >     * Part 1: WAMP Basic Profile
 >      >     * Part 2: WAMP Advanced Profile
 >      >
 >      > [https://github.com/tavendo/WAMP/tree/master/spec](https://github.com/tavendo/WAMP/tree/master/spec)
<[https://github.com/tavendo/WAMP/tree/master/spec](https://github.com/tavendo/WAMP/tree/master/spec)>
 >     <[https://github.com/tavendo/WAMP/tree/master/spec](https://github.com/tavendo/WAMP/tree/master/spec)
<[https://github.com/tavendo/WAMP/tree/master/spec](https://github.com/tavendo/WAMP/tree/master/spec)>>
 >      >     <[https://github.com/tavendo/WAMP/tree/master/spec](https://github.com/tavendo/WAMP/tree/master/spec)
<[https://github.com/tavendo/WAMP/tree/master/spec](https://github.com/tavendo/WAMP/tree/master/spec)>
 >     <[https://github.com/tavendo/WAMP/tree/master/spec](https://github.com/tavendo/WAMP/tree/master/spec)
<[https://github.com/tavendo/WAMP/tree/master/spec](https://github.com/tavendo/WAMP/tree/master/spec)>>>
 >      >
 >      >     The "Basic Profile" document is now considered stable,
which
 >     means any
 >      >     changes will only be for fixing bugs in the spec. The
message
 >     and
 >      >     feature set is frozen.
 >      >
 >      >     The "Advanced Profile" should be considered
work-in-progress
 >     in large
 >      >     parts. This will need some time to stabilize ..
 >      >
 >      >     Cheers,
 >      >     /Tobias
 >
 >
 > --
 > You received this message because you are subscribed to the Google
 > Groups "Autobahn" group.
 > To unsubscribe from this group and stop receiving emails from it,
send
 > an email to autobahnws+...@googlegroups.com <javascript:>
 > <mailto:autobahnws+unsub...@googlegroups.com <javascript:>>.
 > For more options, visit [https://groups.google.com/d/optout](https://groups.google.com/d/optout)
<[https://groups.google.com/d/optout](https://groups.google.com/d/optout)>.

You received this message because you are subscribed to the Google

Groups “Autobahn” group.

To unsubscribe from this group and stop receiving emails from it, send

an email to autobahnws+...@googlegroups.com

mailto:autobahnws+unsub...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

0 Likes

#9

Yes please .. don't hesitate to ask or file issues right away .. this (WAMP2) is all very new and needs to mature still ..

/Tobias

···

Am 18.03.2014 17:56, schrieb Jess Updegrove:

Glad to know it's a bug and not me! :wink: Thank you for the replies, I will
definitely let you know of any other "bugs" I may stumble upon.

0 Likes

#10

Believe it or not, I think I found something else. I’m trying to run the test code from https://github.com/tavendo/AutobahnPython/blob/master/examples/twisted/wamp/basic/pubsub/decorators/frontend.py and it crashes and says

"[WampWebSocketClientProtocol,client] Unhandled Error
Traceback (most recent call last):
File “/usr/local/lib/python2.7/dist-packages/autobahn/twisted/websocket.py”, line 116, in _onMessage
self.onMessage(payload, isBinary)
File “/usr/local/lib/python2.7/dist-packages/autobahn/wamp/websocket.py”, line 88, in onMessage
self._session.onMessage(msg)
File “/usr/local/lib/python2.7/dist-packages/autobahn/wamp/protocol.py”, line 350, in onMessage
self.onJoin(SessionDetails(self._session_id))
File “/usr/lib/python2.7/dist-packages/twisted/internet/defer.py”, line 1214, in unwindGenerator
return _inlineCallbacks(None, gen, Deferred())
— —
File “/usr/lib/python2.7/dist-packages/twisted/internet/defer.py”, line 1071, in _inlineCallbacks
result = g.send(result)
File “/home/student/updegroj/near_dms-wamp2/wamp2_decosub.py”, line 31, in onJoin
results = yield self.subscribe(self)
File “/usr/local/lib/python2.7/dist-packages/autobahn/wamp/protocol.py”, line 711, in subscribe
assert(callable(handler))
exceptions.AssertionError:

"
Is this a bug or is it me?

Jess

···

On Tuesday, March 18, 2014 1:15:31 PM UTC-4, Tobias Oberstein wrote:

Am 18.03.2014 17:56, schrieb Jess Updegrove:

Glad to know it’s a bug and not me! :wink: Thank you for the replies, I will

definitely let you know of any other “bugs” I may stumble upon.

Yes please … don’t hesitate to ask or file issues right away … this
(WAMP2) is all very new and needs to mature still …

/Tobias

0 Likes

#11

Believe it or not, I think I found something else. I'm trying to run the
test code from
<https://github.com/tavendo/AutobahnPython/blob/master/examples/twisted/wamp/basic/pubsub/decorators/frontend.py>
and it crashes and says

Works for me (see screenshot).

Are you running the latest version?

$ python
Python 2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import autobahn
>>> autobahn.__version__
'0.8.5'

The line number raising the exception suggests that it is not the latest version .. since that has

https://github.com/tavendo/AutobahnPython/blob/v0.8.5/autobahn/autobahn/wamp/protocol.py#L737

···

Am 18.03.2014 18:22, schrieb Jess Updegrove:

"[WampWebSocketClientProtocol,client] Unhandled Error
     Traceback (most recent call last):
       File
"/usr/local/lib/python2.7/dist-packages/autobahn/twisted/websocket.py",
line 116, in _onMessage
         self.onMessage(payload, isBinary)
       File
"/usr/local/lib/python2.7/dist-packages/autobahn/wamp/websocket.py",
line 88, in onMessage
         self._session.onMessage(msg)
       File
"/usr/local/lib/python2.7/dist-packages/autobahn/wamp/protocol.py", line
350, in onMessage
         self.onJoin(SessionDetails(self._session_id))
       File
"/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1214,
in unwindGenerator
         return _inlineCallbacks(None, gen, Deferred())
     --- <exception caught here> ---
       File
"/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1071,
in _inlineCallbacks
         result = g.send(result)
       File "/home/student/updegroj/near_dms-wamp2/wamp2_decosub.py",
line 31, in onJoin
         results = yield self.subscribe(self)
       File
"/usr/local/lib/python2.7/dist-packages/autobahn/wamp/protocol.py", line
711, in subscribe
         assert(callable(handler))
     exceptions.AssertionError:

"
Is this a bug or is it me?

Jess
On Tuesday, March 18, 2014 1:15:31 PM UTC-4, Tobias Oberstein wrote:

    Am 18.03.2014 17:56, schrieb Jess Updegrove:
     > Glad to know it's a bug and not me! :wink: Thank you for the replies,
    I will
     > definitely let you know of any other "bugs" I may stumble upon.

    Yes please .. don't hesitate to ask or file issues right away .. this
    (WAMP2) is all very new and needs to mature still ..

    /Tobias

--
You received this message because you are subscribed to the Google
Groups "Autobahn" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to autobahnws+...@googlegroups.com
<mailto:autobahnws+...@googlegroups.com>.
For more options, visit https://groups.google.com/d/optout.

0 Likes

#12

Ah good catch, I’m not running the latest version. I’ll update that.

···

On Tuesday, March 18, 2014 3:35:09 PM UTC-4, Tobias Oberstein wrote:

Am 18.03.2014 18:22, schrieb Jess Updegrove:

Believe it or not, I think I found something else. I’m trying to run the

test code from

<https://github.com/tavendo/AutobahnPython/blob/master/examples/twisted/wamp/basic/pubsub/decorators/frontend.py>

and it crashes and says

Works for me (see screenshot).

Are you running the latest version?

$ python

Python 2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit
(Intel)] on win32

Type “help”, “copyright”, “credits” or “license” for more information.

import autobahn

autobahn.version

‘0.8.5’

The line number raising the exception suggests that it is not the latest
version … since that has

https://github.com/tavendo/AutobahnPython/blob/v0.8.5/autobahn/autobahn/wamp/protocol.py#L737

"[WampWebSocketClientProtocol,client] Unhandled Error

 Traceback (most recent call last):
   File

“/usr/local/lib/python2.7/dist-packages/autobahn/twisted/websocket.py”,

line 116, in _onMessage

     self.onMessage(payload, isBinary)
   File

“/usr/local/lib/python2.7/dist-packages/autobahn/wamp/websocket.py”,

line 88, in onMessage

     self._session.onMessage(msg)
   File

“/usr/local/lib/python2.7/dist-packages/autobahn/wamp/protocol.py”, line

350, in onMessage

     self.onJoin(SessionDetails(self._session_id))
   File

“/usr/lib/python2.7/dist-packages/twisted/internet/defer.py”, line 1214,

in unwindGenerator

     return _inlineCallbacks(None, gen, Deferred())
 --- <exception caught here> ---
   File

“/usr/lib/python2.7/dist-packages/twisted/internet/defer.py”, line 1071,

in _inlineCallbacks

     result = g.send(result)
   File "/home/student/updegroj/near_dms-wamp2/wamp2_decosub.py",

line 31, in onJoin

     results = yield self.subscribe(self)
   File

“/usr/local/lib/python2.7/dist-packages/autobahn/wamp/protocol.py”, line

711, in subscribe

     assert(callable(handler))
 exceptions.AssertionError:

"

Is this a bug or is it me?

Jess

On Tuesday, March 18, 2014 1:15:31 PM UTC-4, Tobias Oberstein wrote:

Am 18.03.2014 17:56, schrieb Jess Updegrove:
 > Glad to know it's a bug and not me! ;) Thank you for the replies,
I will
 > definitely let you know of any other "bugs" I may stumble upon.
Yes please .. don't hesitate to ask or file issues right away .. this
(WAMP2) is all very new and needs to mature still ..
/Tobias

You received this message because you are subscribed to the Google

Groups “Autobahn” group.

To unsubscribe from this group and stop receiving emails from it, send

an email to autobahnws+...@googlegroups.com

mailto:autobahnws+unsub...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

0 Likes