luking-dev / webiopi

Automatically exported from code.google.com/p/webiopi
0 stars 0 forks source link

Add WebSocket support #9

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Optimize push 
- Long Polling ?
- Cometd / Bayeux ?
- WebSocket ?

Original issue reported on code.google.com by tro...@trouch.com on 23 Nov 2012 at 3:52

GoogleCodeExporter commented 9 years ago
depends on issue 40

Original comment by tro...@trouch.com on 27 Mar 2013 at 11:59

GoogleCodeExporter commented 9 years ago
FYI, After looking at some aspects behing COMET, long polling and Bayeux I 
would prefer WebSockets as the most future-proof solution. Interestingly there 
already exists a OpenSource library family that supports some very important 
environments like Android, jScript and Python.

See e.g. http://autobahn.ws/ which would allow to make Android native apps 
right away and salso provides a JS library.

Only caveat is that the Python version is relying on Twisted which is not 
Python 3.0 ready afaik. Assume that CherryPy is.

You should make shure that the official RFC 6455 release of WebSockets is used. 
Looks like this https://github.com/Lawouach/WebSocket-for-Python is providing a 
WebSocket implementation for Python that can be used on top CherryPy for Python 
2 and 3.

If I understand WebSockets right we still need some additional component that 
forms the "wire protocol" that is used inside the WebSockets channel. But no 
standards exist here, so it could just be the REST/JSON API that WebIOPi 
already implements. 

Andreas

Original comment by andreas....@googlemail.com on 23 Apr 2013 at 9:18

GoogleCodeExporter commented 9 years ago
Maybe this http://wamp.ws/ is an interesting approach/example for such a wire 
protocol that is highly compatible with what WebIOPi already does in the sense 
of JSON usage for "*" requests.

Andreas

Original comment by andreas....@googlemail.com on 23 Apr 2013 at 9:36

GoogleCodeExporter commented 9 years ago
don't worry about that ;)
I think to use websocket with classical long-polling fallback.
I will certainly implement the PubSub model on top of everything.
I'm thinking about cherrypy with ws4py, but not sure yet.
You are right twisted does not support python 3.
I don't know wamp.ws, I will check it.

Original comment by tro...@trouch.com on 23 Apr 2013 at 4:47

GoogleCodeExporter commented 9 years ago
Checked wamp.ws, and its pink color remember me something.
I may have already seen it in my watch.
Well, it implement PubSub as well ;)
Now I have to remember why I don't retained it.

Original comment by tro...@trouch.com on 23 Apr 2013 at 5:04

GoogleCodeExporter commented 9 years ago

Original comment by tro...@trouch.com on 4 Jan 2014 at 8:29