WAMP Basic Profile: Goodbye Message Handling

#1

Based on the basic profile specifications the protocol requires both peers to send a goodbye message to each other when a session is being closed. So if a component initiates the close:

component === goodbye ===> router ===> goodbye ===> component

If the router initiates the close:

router === goodbye ===> component ===> goodbye ===> router

My question is, in the case of a router shutting down, how is the anticipated goodbye response from the component handled? The router would basically have to block on shutdown until all of the goodbye responses from the components have been received. However, I do not see a code path for this in crossbar.io. Are the goodbye responses from the components simply ignored in this case?

0 Likes

#2

With a router initiated close of a single session, the router should wait and timeout the receipt of peer goodbye. It should also perform and timeout transport closing handshake, if the WAMP transport in use has that (eg websocket).

With a router shutting down normally, it should send goodbye but probably not wait on receiving goodbye reply from all sessions, for the reasons you outline. Same holds true for closing handshake of underlying transport. However, it should not hard drop the transports (eg TCP)

With a router shutting down in emergency, it should just hard drop the underlying transports without any closing handshakes at the WAMP or transport level.

Nothing of this is mentioned in the spec, but it should.

If you agree:

Could you fire an issue on the spec repo attaching our conversation or even do a spec PR?

If you disagree: pls also file an issue and add your suggestions how it should be there …

···

Sent from Mobile (Google Nexus 5)

Am 23.01.2015 16:41 schrieb “David Chappelle” chap...@gmail.com:

Based on the basic profile specifications the protocol requires both peers to send a goodbye message to each other when a session is being closed. So if a component initiates the close:

component === goodbye ===> router ===> goodbye ===> component

If the router initiates the close:

router === goodbye ===> component ===> goodbye ===> router

My question is, in the case of a router shutting down, how is the anticipated goodbye response from the component handled? The router would basically have to block on shutdown until all of the goodbye responses from the components have been received. However, I do not see a code path for this in crossbar.io. Are the goodbye responses from the components simply ignored in this case?

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.

To post to this group, send email to autob...@googlegroups.com.

To view this discussion on the web visit https://groups.google.com/d/msgid/autobahnws/b25349aa-5711-4772-b5c0-c163f1a5e70c%40googlegroups.com.

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

0 Likes