Does Autobahn|JS really support WAMPv2's Advanced Profile?

165 views
Skip to first unread message

Jerry Wang

unread,
Jul 8, 2014, 5:01:10 AM7/8/14
to autob...@googlegroups.com
In the table, http://wamp.ws/implementations/, it shows that the Advanced Profile is supported by AutobahnJS.

But I don't see any tutorials like , how to turn on the longpooling fallback,  how to take use the heartbeat feature.

Does Autobahn|JS really support WAMPv2's Advanced Profile?

Jerry Wang

unread,
Jul 8, 2014, 6:33:02 AM7/8/14
to autob...@googlegroups.com
I found this source file https://github.com/tavendo/AutobahnJS/blob/master/package/lib/longpoll.js
It seems the long-pool is still far from completion.
And it takes use of XMLHttpRequest to send the request, which means it will have problem for cross-domain access as not all browsers supports CORS.
Better use JSONP to pool the server output and classic form post for message sending.
This is how we are doing for fallback support for WAMP v1.

Alexander Gödde

unread,
Jul 8, 2014, 6:41:34 AM7/8/14
to autob...@googlegroups.com
Hi Jerry!

Two general points:

  • The WAMP Advanced profile is partially still in flux
  • Implementation of the parts that are already fully specified and stable is underway, feature-by-feature.
Regarding the two points you mentioned:

  • Long polling is implemented in Autobahn|Python, it will follow in Autobahn|JS within the coming weeks.
  • Heartbeats is on the implementation roadmap (sorry, can't be more specific than this).

Regards,

Alex

Alexander Gödde

unread,
Jul 8, 2014, 6:44:29 AM7/8/14
to autob...@googlegroups.com
... and one more point: 

The WAMP basic profile is necessarily fully supported.
The WAMP Advanced Profile is a collection from which implementations pick what they want.

Jerry Wang

unread,
Jul 8, 2014, 7:35:57 AM7/8/14
to autob...@googlegroups.com
Thank you Alex

it will follow in Autobahn|JS within the coming weeks.

Do you have an accurate estimation on when the long-polling could be released in AutobahnJS? 
Because we are upgrading our service from WAMP v1 to v2 now, and in WAMP v1, we already have fallback support.
If it is true that long-polling feature of Autobahn|JS will come out in 4 or 6 weeks, we don't need implement our own fallback for WAMP v2 again.

From our experience, fallback is necessary not only for old web browsers.
but also the websocket connection could be blocked by HTTP proxy even the web browser supports it.

That's why we really need it.

Br.

Tobias Oberstein

unread,
Jul 8, 2014, 7:55:14 AM7/8/14
to autob...@googlegroups.com
Am 08.07.2014 13:35, schrieb Jerry Wang:
> Thank you Alex
>
> it will follow in Autobahn|JS within the coming weeks.
>
>
> Do you have an accurate estimation on when the long-polling could be
> released in AutobahnJS?

No.

> Because we are upgrading our service from WAMP v1 to v2 now, and in WAMP
> v1, we already have fallback support.
> If it is true that long-polling feature of Autobahn|JS will come out in
> 4 or 6 weeks, we don't need implement our own fallback for WAMP v2 again.
>
> From our experience, fallback is necessary not only for old web browsers.
> but also the websocket connection could be blocked by HTTP proxy even
> the web browser supports it.

Use WSS.

>
> That's why we really need it.

Sure. Go ahead! We are accepting pull requests.

/Tobias

>
> Br.
>
>
> On Tuesday, July 8, 2014 6:41:34 PM UTC+8, Alexander Gödde wrote:
>
> Hi Jerry!
>
> Two general points:
>
> * The WAMP Advanced profile is partially still in flux
> * Implementation of the parts that are already fully specified and
> stable is underway, feature-by-feature.
>
> Regarding the two points you mentioned:
>
> * Long polling is implemented in Autobahn|Python, it will follow
> in Autobahn|JS within the coming weeks.
> * Heartbeats is on the implementation roadmap (sorry, can't be
> more specific than this).
>
>
> Regards,
>
> Alex
>
> Am Dienstag, 8. Juli 2014 11:01:10 UTC+2 schrieb Jerry Wang:
>
> In the table, http://wamp.ws/implementations/
> <http://wamp.ws/implementations/>, it shows that the Advanced
> Profile is supported by AutobahnJS.
>
> But I don't see any tutorials like , how to turn on the
> longpooling fallback, how to take use the heartbeat feature.
>
> Does Autobahn|JS really support WAMPv2's Advanced Profile?
>
> --
> 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>.
> To post to this group, send email to autob...@googlegroups.com
> <mailto:autob...@googlegroups.com>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/autobahnws/2cc4a818-2c85-43b0-a2fa-72df208badb5%40googlegroups.com
> <https://groups.google.com/d/msgid/autobahnws/2cc4a818-2c85-43b0-a2fa-72df208badb5%40googlegroups.com?utm_medium=email&utm_source=footer>.
> For more options, visit https://groups.google.com/d/optout.

Jerry Wang

unread,
Jul 8, 2014, 8:05:02 AM7/8/14
to autob...@googlegroups.com
We always use WSS and it does not help.
Product like this one totally blocks web socket and only allows classic HTTP(s) transimission, the websocket handshake can't be completed at all.

Tobias Oberstein

unread,
Jul 8, 2014, 8:12:17 AM7/8/14
to autob...@googlegroups.com
Am 08.07.2014 14:05, schrieb Jerry Wang:
> We always use WSS and it does not help.

It does, unless you are deploying TLS interceptors (lacking WebSocket
support).

> Product like this one
> <https://www.barracuda.com/products/webfilter> totally blocks web socket
> and only allows classic HTTP(s) transimission, the websocket handshake
> can't be completed at all.

People should simply stop deploying TLS interceptors. It breaks user's
privacy. I won't waste time contemplating on how to make those boxes "work".

Note that boxes like above often have issues with HTTP long-polling
also. Essentially, they break the Web. So even when AutobahnJS supports
WAMP long-poll, it probably won't work with that box.

/Tobias

Jerry Wang

unread,
Jul 8, 2014, 8:39:11 AM7/8/14
to autob...@googlegroups.com
Not quite sure about that as HTTPS works but WSS does not.
Anyway, from my opinion, "proxy" is out of the scope and application only tries to be as compatible as possible.
Currently our site falls back to long-polling automatically when the web socket connection could not be established and this solved the problem.

Tobias Oberstein

unread,
Jul 8, 2014, 10:52:35 AM7/8/14
to autob...@googlegroups.com
Am 08.07.2014 14:39, schrieb Jerry Wang:
> Not quite sure about that as HTTPS works but WSS does not.

I have contacted Barracuda: the appliance does _not_ support WebSocket:

https://github.com/crossbario/crossbar/wiki/SSL-TLS-Interception-Proxies#barracuda-web-filter

I am still waiting on answers rgd the other points in above page.

/Tobias
Reply all
Reply to author
Forward
0 new messages