Roadmap on long-polling support?

106 views
Skip to first unread message

Sebastien Jourdain

unread,
Jun 12, 2014, 12:53:17 PM6/12/14
to autob...@googlegroups.com
Hi all,

I was wondering when the long-polling protocol will be available between AutobahnPython(server) and AutobahnJS(client).

Thanks for developing those great libraries!

Seb

Tobias Oberstein

unread,
Jun 13, 2014, 8:37:47 AM6/13/14
to autob...@googlegroups.com
Hi Sebastien,

Am 12.06.2014 18:53, schrieb Sebastien Jourdain:
> Hi all,
>
> I was wondering when the long-polling protocol will be available between
> AutobahnPython(server) and AutobahnJS(client).

Arno is working on this for AutobahnJS

https://github.com/arnoschn/AutobahnJS/tree/issue84
https://github.com/tavendo/AutobahnJS/issues/70

and I am working on AutobahnPython

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

It'll be there "soon" ..

Cheers,
/Tobias

>
> Thanks for developing those great libraries!
>
> Seb
>
> --
> 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.

Sebastien Jourdain

unread,
Jun 13, 2014, 10:24:15 AM6/13/14
to autob...@googlegroups.com
Thanks Tobias,

that's a great news.
And thanks for your hard work on that wonderful library!

Seb

Sebastien Jourdain

unread,
Jul 28, 2014, 2:05:43 PM7/28/14
to autob...@googlegroups.com
Hi Tobias,

is there any example now that the Python side and the JS can talk with long polling?

Basically what should be done on the twisted side to register the long polling endpoint?
And how to choose long polling over ws on the JavaScript side?

Thanks,

Seb

Tobias Oberstein

unread,
Jul 28, 2014, 2:43:48 PM7/28/14
to autobahnws

I am on mobile .. so ultrashort reply:

http://crossbar.io/docs/WAMP-Long-Poll-Service/
https://github.com/tavendo/AutobahnPython/tree/master/examples/twisted/wamp/longpoll

However: AutobahnJS with LP is not finished. Need to get that done now and wipe the LP issue off my backlog ..

Sent from Mobile (Google Nexus 5)

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/598e02f5-0810-4194-b23d-a6f4949c83c4%40googlegroups.com.

Sebastien Jourdain

unread,
Jul 28, 2014, 3:04:46 PM7/28/14
to autob...@googlegroups.com
Thanks Tobias, 

that's great! I'm looking forward to get my hand on the JS version.
I guess, on the client side, we will just need to create a connection with the "http://host:port/lp" instead of "ws://host:port/ws".
Is that right?

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

Tobias Oberstein

unread,
Jul 28, 2014, 5:35:17 PM7/28/14
to autob...@googlegroups.com
Am 28.07.2014 21:04, schrieb Sebastien Jourdain:
> Thanks Tobias,
>
> that's great! I'm looking forward to get my hand on the JS version.
> I guess, on the client side, we will just need to create a connection
> with the "http://host:port/lp" instead of "ws://host:port/ws".
> Is that right?

You will specify not 1 transport (as of today), but can optionally
specify a list of transports. It's purely the connect config. Everything
else in your app works fully transparent. Doesnt matter whcih transport ..

>
> Seb
>
> On Monday, July 28, 2014 12:43:48 PM UTC-6, Tobias Oberstein wrote:
>
> I am on mobile .. so ultrashort reply:
>
> http://crossbar.io/docs/WAMP-Long-Poll-Service/
> <http://crossbar.io/docs/WAMP-Long-Poll-Service/>
> https://github.com/tavendo/AutobahnPython/tree/master/examples/twisted/wamp/longpoll
> <https://github.com/tavendo/AutobahnPython/tree/master/examples/twisted/wamp/longpoll>
>
> However: AutobahnJS with LP is not finished. Need to get that done
> now and wipe the LP issue off my backlog ..
>
> Sent from Mobile (Google Nexus 5)
>
> Am 28.07.2014 20:05 schrieb "Sebastien Jourdain"
> <sebastien...@kitware.com <javascript:>>:
>
> Hi Tobias,
>
> is there any example now that the Python side and the JS can
> talk with long polling?
>
> Basically what should be done on the twisted side to register
> the long polling endpoint?
> And how to choose long polling over ws on the JavaScript side?
>
> Thanks,
>
> Seb
>
> On Friday, June 13, 2014 8:24:15 AM UTC-6, Sebastien Jourdain wrote:
>
> Thanks Tobias,
>
> that's a great news.
> And thanks for your hard work on that wonderful library!
>
> Seb
>
> On Friday, June 13, 2014 6:37:47 AM UTC-6, Tobias Oberstein
> wrote:
>
> Hi Sebastien,
>
> Am 12.06.2014 18:53, schrieb Sebastien Jourdain:
> > Hi all,
> >
> > I was wondering when the long-polling protocol will
> be available between
> > AutobahnPython(server) and AutobahnJS(client).
>
> Arno is working on this for AutobahnJS
>
> https://github.com/arnoschn/__AutobahnJS/tree/issue84
> <https://github.com/arnoschn/AutobahnJS/tree/issue84>
> https://github.com/tavendo/__AutobahnJS/issues/70
> <https://github.com/tavendo/AutobahnJS/issues/70>
>
> and I am working on AutobahnPython
>
> https://github.com/tavendo/__AutobahnPython/issues/175
> <https://github.com/tavendo/AutobahnPython/issues/175>
>
> It'll be there "soon" ..
>
> Cheers,
> /Tobias
>
> >
> > Thanks for developing those great libraries!
> >
> > Seb
> >
> > --
> > 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
> <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 <javascript:>.
> To post to this group, send email to autob...@googlegroups.com
> <javascript:>.
> <https://groups.google.com/d/msgid/autobahnws/598e02f5-0810-4194-b23d-a6f4949c83c4%40googlegroups.com?utm_medium=email&utm_source=footer>.
> 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>.
> 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/43e3f6ee-2b26-40ec-b07e-c2ce6d83f7ac%40googlegroups.com
> <https://groups.google.com/d/msgid/autobahnws/43e3f6ee-2b26-40ec-b07e-c2ce6d83f7ac%40googlegroups.com?utm_medium=email&utm_source=footer>.

Scott Wittenburg

unread,
Aug 13, 2014, 11:00:50 AM8/13/14
to autob...@googlegroups.com
Hi Tobias,

   I just wanted to check in and get a feel whether the long polling support on the AutobahnJS side was getting close?  Or if it's not too close, maybe you guys have a time frame in mind?

   We really love Autobahn, thanks for the great work!

Cheers,
Scott
>                  > <mailto:autobahnws+__unsub...@googlegroups.com>.
>                  > 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 <javascript:>.
>         To post to this group, send email to autob...@googlegroups.com
>         <javascript:>.
>         To view this discussion on the web visit
>         https://groups.google.com/d/msgid/autobahnws/598e02f5-0810-4194-b23d-a6f4949c83c4%40googlegroups.com
>         <https://groups.google.com/d/msgid/autobahnws/598e02f5-0810-4194-b23d-a6f4949c83c4%40googlegroups.com?utm_medium=email&utm_source=footer>.
>         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

Tobias Oberstein

unread,
Aug 14, 2014, 8:54:40 AM8/14/14
to autob...@googlegroups.com
Hi Scott,

> I just wanted to check in and get a feel whether the long polling
> support on the AutobahnJS side was getting close? Or if it's not too
> close, maybe you guys have a time frame in mind?

It hasn't made it to top of my work queue;( Sorry, if no one other
chimes in and implements it, I can't give you a deadline - other than
"this year". It's 2 days work for me (since some refactoring needs to be
done), and compared with other stuff, it's low prio for us.

>
> We really love Autobahn, thanks for the great work!

Great! Btw: are you running on Crossbar.io or your own AutobahnPython
based router (or something else)?

Cheers,
/Tobias
> <https://github.com/arnoschn/__AutobahnJS/tree/issue84>
> >
> <https://github.com/arnoschn/AutobahnJS/tree/issue84
> <https://github.com/arnoschn/AutobahnJS/tree/issue84>>
> > https://github.com/tavendo/__AutobahnJS/issues/70
> <https://github.com/tavendo/__AutobahnJS/issues/70>
> > <https://github.com/tavendo/AutobahnJS/issues/70
> <https://github.com/tavendo/__AutobahnPython/issues/175>
> >
> <https://github.com/tavendo/AutobahnPython/issues/175
> <https://github.com/tavendo/AutobahnPython/issues/175>>
> >
> > It'll be there "soon" ..
> >
> > Cheers,
> > /Tobias
> >
> > >
> > > Thanks for developing those great libraries!
> > >
> > > Seb
> > >
> > > --
> > > 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 <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
> <https://groups.google.com/d/msgid/autobahnws/598e02f5-0810-4194-b23d-a6f4949c83c4%40googlegroups.com?utm_medium=email&utm_source=footer
> <https://groups.google.com/d/msgid/autobahnws/598e02f5-0810-4194-b23d-a6f4949c83c4%40googlegroups.com?utm_medium=email&utm_source=footer>>.
>
> > 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 <javascript:>
> > <mailto:autobahnws+...@googlegroups.com <javascript:>>.
> > To post to this group, send email to autob...@googlegroups.com
> <javascript:>
> > <mailto:autob...@googlegroups.com <javascript:>>.
> > To view this discussion on the web visit
> >
> https://groups.google.com/d/msgid/autobahnws/43e3f6ee-2b26-40ec-b07e-c2ce6d83f7ac%40googlegroups.com
> <https://groups.google.com/d/msgid/autobahnws/43e3f6ee-2b26-40ec-b07e-c2ce6d83f7ac%40googlegroups.com>
>
> >
> <https://groups.google.com/d/msgid/autobahnws/43e3f6ee-2b26-40ec-b07e-c2ce6d83f7ac%40googlegroups.com?utm_medium=email&utm_source=footer
> <https://groups.google.com/d/msgid/autobahnws/43e3f6ee-2b26-40ec-b07e-c2ce6d83f7ac%40googlegroups.com?utm_medium=email&utm_source=footer>>.
>
> > 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>.
> 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/88fb249b-1263-44b2-8910-f5a3ddc27fc7%40googlegroups.com
> <https://groups.google.com/d/msgid/autobahnws/88fb249b-1263-44b2-8910-f5a3ddc27fc7%40googlegroups.com?utm_medium=email&utm_source=footer>.

Scott Wittenburg

unread,
Aug 14, 2014, 1:53:15 PM8/14/14
to autob...@googlegroups.com
Hi Tobias,

   Thanks for the quick response, it's really nice you're so active on the mailing list.  We are using Autobahn (Python and JS) in the web-based versions of ParaView (www.paraview.org) and VTK (www.vtk.org), which are tools for 3D scientific visualization, frequently used on HPC clusters, but not exclusively so.  We aren't using Crossbar.io, but rather just the Autobahn Python stuff for our server-side implementation.  If you're interested in what we're doing on the web side of things, there's some documentation and demos here: http://www.paraviewweb.kitware.com

   In some HPC environments, we have requirements to use HTTP rather than websockets, so we're really excited for client-side long polling support.  Is there any way we can help you to get it done sooner?

   Anyway, thanks for the great work!

Cheers,
Scott

>     <mailto:autobahnws+__unsub...@googlegroups.com <javascript:>>.
>      > <mailto:autobahnws+unsub...@googlegroups.com <javascript:>>.
>      > To post to this group, send email to autob...@googlegroups.com
>     <javascript:>
>      > <mailto:autob...@googlegroups.com <javascript:>>.
>      > To view this discussion on the web visit
>      >
>     https://groups.google.com/d/msgid/autobahnws/43e3f6ee-2b26-40ec-b07e-c2ce6d83f7ac%40googlegroups.com
>     <https://groups.google.com/d/msgid/autobahnws/43e3f6ee-2b26-40ec-b07e-c2ce6d83f7ac%40googlegroups.com>
>
>      >
>     <https://groups.google.com/d/msgid/autobahnws/43e3f6ee-2b26-40ec-b07e-c2ce6d83f7ac%40googlegroups.com?utm_medium=email&utm_source=footer
>     <https://groups.google.com/d/msgid/autobahnws/43e3f6ee-2b26-40ec-b07e-c2ce6d83f7ac%40googlegroups.com?utm_medium=email&utm_source=footer>>.
>
>      > 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

Tobias Oberstein

unread,
Aug 15, 2014, 11:06:52 AM8/15/14
to autob...@googlegroups.com
Hi Scott,

> Thanks for the quick response, it's really nice you're so active on
> the mailing list. We are using Autobahn (Python and JS) in the
> web-based versions of ParaView (www.paraview.org) and VTK (www.vtk.org),
> which are tools for 3D scientific visualization, frequently used on HPC

Cool! I've been looking through Kitware's web sites. Awesome. I've got a
lot of sympathy for you guys as you also (like Tavendo) seem to be
open-source supporters and contributors. And serve the scientific community.

Btw: I've just added a "what users do with WAMP" to http://wamp.ws/
mentioning Kitware.

I hope you are fine with this (if not, I'll remove it ASAP). If you have
any improvements to the text there (or an SVG version of your logo), pls
mail me.

> clusters, but not exclusively so. We aren't using Crossbar.io, but
> rather just the Autobahn Python stuff for our server-side
> implementation. If you're interested in what we're doing on the web
> side of things, there's some documentation and demos
> here: http://www.paraviewweb.kitware.com
>
> In some HPC environments, we have requirements to use HTTP rather
> than websockets, so we're really excited for client-side long polling

I see.

> support. Is there any way we can help you to get it done sooner?

Top prios for us is a) get more traction for Crossbar.io and b) launch
our Crossbar.io Cloud service ("routing-as-a-service"), and c) keep
Tavendo running (=money - we don't (yet) make any with all of this, and
if I add up the numbers we already invested - it's higher 6 digit).

Anyway, WAMP-LP transport doesn't directly serve any of above. To get it
up in my work queue: if Kitware migrated to Crossbar.io, that would
serve a).

Pls don't get me wrong: we will add WAMP-LP in AutobahnJS no matter
what. And Kitware using AutobahnPython "home-brew" router is just fine.
But you could explore/contemplate advantages of using CB, like builtin
authentication, authorization, monitoring, payload validation and such.

Cheers,
/Tobias
> > <mailto:autobahnws+_...@googlegroups.com
> <javascript:> <javascript:>>.
> > > <mailto:autobahnws+...@googlegroups.com
> <javascript:> <javascript:>>.
> > <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 <javascript:>
> > <mailto:autobahnws+...@googlegroups.com <javascript:>>.
> > To post to this group, send email to autob...@googlegroups.com
> <javascript:>
> > <mailto:autob...@googlegroups.com <javascript:>>.
> > To view this discussion on the web visit
> >
> https://groups.google.com/d/msgid/autobahnws/88fb249b-1263-44b2-8910-f5a3ddc27fc7%40googlegroups.com
> <https://groups.google.com/d/msgid/autobahnws/88fb249b-1263-44b2-8910-f5a3ddc27fc7%40googlegroups.com>
>
> >
> <https://groups.google.com/d/msgid/autobahnws/88fb249b-1263-44b2-8910-f5a3ddc27fc7%40googlegroups.com?utm_medium=email&utm_source=footer
> <https://groups.google.com/d/msgid/autobahnws/88fb249b-1263-44b2-8910-f5a3ddc27fc7%40googlegroups.com?utm_medium=email&utm_source=footer>>.
>
> > 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>.
> 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/4d9ca692-f28b-4838-abab-611bf788aaf3%40googlegroups.com
> <https://groups.google.com/d/msgid/autobahnws/4d9ca692-f28b-4838-abab-611bf788aaf3%40googlegroups.com?utm_medium=email&utm_source=footer>.

Sebastien Jourdain

unread,
Aug 15, 2014, 12:19:47 PM8/15/14
to autob...@googlegroups.com
Thanks Tobias for your great feedback.

We'll investigate more about Crossbar.io to see if we can leverage it in someway.
We won't drop the AutobahnPython "home-brew" router as it allow us to provide a simple ad-hoc solution for VTK and ParaView Web. But for more complex deployment, using crossbar.io, might make sense and we might be able to provide some deployment setup which involve it as a center piece.

Thanks again,

Seb


     >     <mailto:autobahnws+__unsub...@googlegroups.com
    <javascript:> <javascript:>>.
     >      > <mailto:autobahnws+unsub...@googlegroups.com
    <javascript:> <javascript:>>.

     >      > To post to this group, send email to
    autob...@googlegroups.com
     >     <javascript:>
     >      > <mailto:autob...@googlegroups.com <javascript:>>.
     >      > To view this discussion on the web visit
     >      >
     >
    https://groups.google.com/d/msgid/autobahnws/43e3f6ee-2b26-40ec-b07e-c2ce6d83f7ac%40googlegroups.com
    <https://groups.google.com/d/msgid/autobahnws/43e3f6ee-2b26-40ec-b07e-c2ce6d83f7ac%40googlegroups.com>

     >
    <https://groups.google.com/d/msgid/autobahnws/43e3f6ee-2b26-40ec-b07e-c2ce6d83f7ac%40googlegroups.com
    <https://groups.google.com/d/msgid/autobahnws/43e3f6ee-2b26-40ec-b07e-c2ce6d83f7ac%40googlegroups.com>>

     >
     >      >
     >
    <https://groups.google.com/d/msgid/autobahnws/43e3f6ee-2b26-40ec-b07e-c2ce6d83f7ac%40googlegroups.com?utm_medium=email&utm_source=footer
    <https://groups.google.com/d/msgid/autobahnws/43e3f6ee-2b26-40ec-b07e-c2ce6d83f7ac%40googlegroups.com?utm_medium=email&utm_source=footer>

     >
    <https://groups.google.com/d/msgid/autobahnws/43e3f6ee-2b26-40ec-b07e-c2ce6d83f7ac%40googlegroups.com?utm_medium=email&utm_source=footer
    <https://groups.google.com/d/msgid/autobahnws/43e3f6ee-2b26-40ec-b07e-c2ce6d83f7ac%40googlegroups.com?utm_medium=email&utm_source=footer>>>.

     >
     >      > 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 <javascript:>
     > <mailto:autobahnws+unsub...@googlegroups.com <javascript:>>.

     > To post to this group, send email to autob...@googlegroups.com
    <javascript:>
     > <mailto:autob...@googlegroups.com <javascript:>>.
     > To view this discussion on the web visit
     >

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

--
You received this message because you are subscribed to a topic in the Google Groups "Autobahn" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/autobahnws/Y7kn85toj9A/unsubscribe.
To unsubscribe from this group and all its topics, send an email to autobahnws+unsubscribe@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/53EE2208.3010007%40gmail.com.

Tobias Oberstein

unread,
Aug 16, 2014, 12:44:44 AM8/16/14
to autob...@googlegroups.com
Hi Sebastien,

Am 15.08.2014 18:19, schrieb Sebastien Jourdain:
> Thanks Tobias for your great feedback.
>
> We'll investigate more about Crossbar.io to see if we can leverage it in
> someway.

If I can be of any help in this, please let me know.

> We won't drop the AutobahnPython "home-brew" router as it allow us to
> provide a simple ad-hoc solution for VTK and ParaView Web. But for more

I see. Just to assure you: this kind of use of AutobahnPython (embedding
a basic router right into a Python app) is fine and we will continue to
support that.

The only thing that is "discouraged" (well, you can hack the code
obviously as you like, but ..): modifying the router code such that
application specific code is run _within_ the router.

The reason for this is: it would break the WAMP design paradigm of
routers being "generic", and app code cleanly separated into app
components ("WAMP clients").

Whether the WAMP component runs in the same process as the router (as I
guess will be the case for you) or not doesn't matter regarding above
paradigm. A component that runs side-by-side / in-process with the
router is simply using a "function-call based WAMP transport" logically.
And this still keeps up the separation of concerns.

> complex deployment, using crossbar.io <http://crossbar.io>, might make
> sense and we might be able to provide some deployment setup which
> involve it as a center piece.

Great! If your code adheres to above "routers are generic" principle, it
should be easy to split out WAMP components and run them via
Crossbar.io. Personally, I think this deployment flexibility is a big
plus of WAMP. Deployment concerns shouldn't affect application code.

Cheers,
/Tobias

>
> Thanks again,
>
> Seb

Scott Wittenburg

unread,
Aug 21, 2014, 8:36:34 PM8/21/14
to autob...@googlegroups.com
Hi Tobias,

Today I started trying to get Crossbar.io to run our existing server which extends ApplicationSession.  I have been able to at least get crossbar to start the server (I think, though I don't see any of the expected print messages), and this is nice.  I can also seemingly connect from the browser using our existing client (based on autobahn js).  However, I have not yet got the authentication in place, and perhaps this is why all of our rpc methods are coming back with errors ("wamp.error.no_such_procedure").  So, before I try to fix our authentication to work under Crossbar.io, I'm wondering if it's really still true what it says on the wiki, linked below, that the cra authentication is not yet implemented?


WAMP CRA is the kind of authentication we recently got working again since we upgraded to WAMP v2.  If the wiki is out of date and cra is, in fact, implemented, do you have an example of setting that up under Crossbar.io?  Otherwise, maybe I should try without authentication for the time being?  Or perhaps try another authentication method?

Hopefully my question is clear.  But in case not, maybe an example would help.  We used to start our server with code like the following (which probably looks familiar from your WAMP examples)

    # Create WAMP router factory
    from autobahn.twisted.wamp import RouterFactory
    router_factory = RouterFactory()

    # create a user DB
    authdb = vtk_wamp.AuthDb()

    # create a WAMP router session factory
    from autobahn.twisted.wamp import RouterSessionFactory
    session_factory = RouterSessionFactory(router_factory)
    session_factory.session = vtk_wamp.CustomWampCraRouterSession
    session_factory.authdb = authdb

    # Register protocol, "protocol()" constructs and returns something 
    # that extends ApplicationSession.
    session_factory.add(protocol(authdb=authdb))

But with Crossbar.io, we don't use any of this code anymore.  Instead we just set up our  "workers"->"container"->"components"->"classname" (in config.json) and our "entry_points" (in setup.py) to refer to the class that extends ApplicationSession, and then it seems to be magically started for us.  So I guess we would need to set up the authentication differently now, and that's what I'm not sure how to do.

Anyway, it seems that Crossbar.io has a lot of really cool possibilities for us, and we're just getting started trying to figure out all the various ways it can be used.

Thanks again for your great work!

Cheers,
Scott

Tobias Oberstein

unread,
Aug 22, 2014, 3:57:43 AM8/22/14
to autob...@googlegroups.com
Hi Scott,

Am 22.08.2014 02:36, schrieb Scott Wittenburg:
> Hi Tobias,
>
> Today I started trying to get Crossbar.io to run our existing server
> which extends ApplicationSession. I have been able to at least get
> crossbar to start the server (I think, though I don't see any of the
> expected print messages), and this is nice. I can also seemingly

Great!

> connect from the browser using our existing client (based on autobahn
> js). However, I have not yet got the authentication in place, and
> perhaps this is why all of our rpc methods are coming back with errors
> ("wamp.error.no_such_procedure"). So, before I try to fix our
> authentication to work under Crossbar.io, I'm wondering if it's really
> still true what it says on the wiki, linked below, that the cra
> authentication is not yet implemented?
>
> https://github.com/crossbario/crossbar/wiki/Authentication
>
> WAMP CRA is the kind of authentication we recently got working again
> since we upgraded to WAMP v2. If the wiki is out of date and cra is, in
> fact, implemented, do you have an example of setting that up under
> Crossbar.io? Otherwise, maybe I should try without authentication for
> the time being? Or perhaps try another authentication method?

No, not your fault. Just came back from a business trip, but I'll add an
app template to CB that shows how to do auth stuff and update the docs
over the weekend.

>
> Hopefully my question is clear. But in case not, maybe an example would

It's clear. What would be interesting is what you are doing in the
AuthDb class. E.g. is that storing user creds in an embedded sqllite or
does it reach out to a RBDMS like Postgres?

> help. We used to start our server with code like the following (which
> probably looks familiar from your WAMP examples)
>
> # Create WAMP router factory
> from autobahn.twisted.wamp import RouterFactory
> router_factory = RouterFactory()
>
> # create a user DB
> authdb = vtk_wamp.AuthDb()
>
> # create a WAMP router session factory
> from autobahn.twisted.wamp import RouterSessionFactory
> session_factory = RouterSessionFactory(router_factory)
> session_factory.session = vtk_wamp.CustomWampCraRouterSession
> session_factory.authdb = authdb
>
> # Register protocol, "protocol()" constructs and returns something
> # that extends ApplicationSession.
> session_factory.add(protocol(authdb=authdb))
>
> But with Crossbar.io, we don't use any of this code anymore. Instead we

Exactly. The only thing that Crossbar.io needs to know (from config) is
the ApplicationSession class you want to have started as a component.

All the boilerplate is taken care of by CB.

> just set up our "workers"->"container"->"components"->"classname" (in
> config.json) and our "entry_points" (in setup.py) to refer to the class
> that extends ApplicationSession, and then it seems to be magically
> started for us. So I guess we would need to set up the authentication

Yes. The CB docs are incomplete .. I'll address that quickly.

> differently now, and that's what I'm not sure how to do.
>
> Anyway, it seems that Crossbar.io has a lot of really cool possibilities
> for us, and we're just getting started trying to figure out all the
> various ways it can be used.

Awesome! It'll only get better over time .. things like real-time
monitoring / insight into the messaging between your app components and
such (which will be awesome for developing). And you'll then profit from
those improvements immediately.

>
> Thanks again for your great work!

Nice to hear;) Thanks!

/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>.
> 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/dfd7c100-fd86-4932-83cf-4c8126597602%40googlegroups.com
> <https://groups.google.com/d/msgid/autobahnws/dfd7c100-fd86-4932-83cf-4c8126597602%40googlegroups.com?utm_medium=email&utm_source=footer>.

Scott Wittenburg

unread,
Aug 22, 2014, 4:31:25 PM8/22/14
to autob...@googlegroups.com
Hi Tobias,


On Fri, Aug 22, 2014 at 1:57 AM, Tobias Oberstein <tobias.o...@gmail.com> wrote:
Hi Scott,

Am 22.08.2014 02:36, schrieb Scott Wittenburg:

Hi Tobias,

Today I started trying to get Crossbar.io to run our existing server
which extends ApplicationSession.  I have been able to at least get
crossbar to start the server (I think, though I don't see any of the
expected print messages), and this is nice.  I can also seemingly

Great!


connect from the browser using our existing client (based on autobahn
js).  However, I have not yet got the authentication in place, and
perhaps this is why all of our rpc methods are coming back with errors
("wamp.error.no_such_procedure").  So, before I try to fix our
authentication to work under Crossbar.io, I'm wondering if it's really
still true what it says on the wiki, linked below, that the cra
authentication is not yet implemented?

https://github.com/crossbario/crossbar/wiki/Authentication

WAMP CRA is the kind of authentication we recently got working again
since we upgraded to WAMP v2.  If the wiki is out of date and cra is, in
fact, implemented, do you have an example of setting that up under
Crossbar.io?  Otherwise, maybe I should try without authentication for
the time being?  Or perhaps try another authentication method?

No, not your fault. Just came back from a business trip, but I'll add an app template to CB that shows how to do auth stuff and update the docs over the weekend.


Thanks, that would be awesome!  I'll keep an eye out for it :-)

Hopefully my question is clear.  But in case not, maybe an example would

It's clear. What would be interesting is what you are doing in the AuthDb class. E.g. is that storing user creds in an embedded sqllite or does it reach out to a RBDMS like Postgres?
 
Well, actually, that AuthDb is a bit misleading, as our application doesn't have the notion of users in a database.  The reason why we use authentication is to prevent any random user to connect to a running visualization session. Basically we target one visualization session per user, so each user has its own dedicated process listening on a different port and endpoint. Hence when a visualization session get started we provide a generated unique key to the process (command line argument) that is going to be used for the authentication part. That key is also provided to the web client by another channel, and the client uses it to authenticate itself to the server.

So as I was saying, we don't have a user database, we are just targeting a mechanism with a key (the user login is a constant). So anyone that knows the key can get access to that specific session.

 
help.  We used to start our server with code like the following (which
probably looks familiar from your WAMP examples)

     # Create WAMP router factory
     from autobahn.twisted.wamp import RouterFactory
     router_factory = RouterFactory()

     # create a user DB
     authdb = vtk_wamp.AuthDb()

     # create a WAMP router session factory
     from autobahn.twisted.wamp import RouterSessionFactory
     session_factory = RouterSessionFactory(router_factory)
     session_factory.session = vtk_wamp.CustomWampCraRouterSession
     session_factory.authdb = authdb

     # Register protocol, "protocol()" constructs and returns something
     # that extends ApplicationSession.
     session_factory.add(protocol(authdb=authdb))

But with Crossbar.io, we don't use any of this code anymore.  Instead we

Exactly. The only thing that Crossbar.io needs to know (from config) is the ApplicationSession class you want to have started as a component.

All the boilerplate is taken care of by CB.

I notice the crossbar docs have a lot of great examples of different ways you can set up your python application components:


However, the configurations I see on that page don't seem to have the same format as the ones that get generated by the "crossbar init" (I installed crossbar yesterday).  So I'm having a hard time trying to set up those difference scenarios with the version I have.  The one I'm working on now looks most like "Router and Application Process", but I'd also like to try out "Router and Application Nodes" if you know the equivalent configuration in the current format.


just set up our  "workers"->"container"->"components"->"classname" (in
config.json) and our "entry_points" (in setup.py) to refer to the class
that extends ApplicationSession, and then it seems to be magically
started for us.  So I guess we would need to set up the authentication

Yes. The CB docs are incomplete .. I'll address that quickly.


differently now, and that's what I'm not sure how to do.

Anyway, it seems that Crossbar.io has a lot of really cool possibilities
for us, and we're just getting started trying to figure out all the
various ways it can be used.

Awesome! It'll only get better over time .. things like real-time monitoring / insight into the messaging between your app components and such (which will be awesome for developing). And you'll then profit from those improvements immediately.


Cool, that would be a great feature to have while debugging/learning :-)

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

--
You received this message because you are subscribed to a topic in the Google Groups "Autobahn" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/autobahnws/Y7kn85toj9A/unsubscribe.
To unsubscribe from this group and all its topics, send an email to autobahnws+unsubscribe@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/53F6F7F5.3010109%40gmail.com.
Reply all
Reply to author
Forward
0 new messages