cherokee / webserver

Cherokee Web Server
GNU General Public License v2.0
563 stars 104 forks source link

HTML5 WebSockets support #223

Open danielniccoli opened 11 years ago

danielniccoli commented 11 years ago

Original author: alobbs (October 29, 2008 08:57:46)

We ought to start thinking about adding HTML5 Websockets support:

http://www.whatwg.org/specs/web-apps/current-work/#network http://www.jroller.com/tedgoddard/entry/websocket_is_neither_web_nor

Original issue: http://code.google.com/p/cherokee/issues/detail?id=169

danielniccoli commented 11 years ago

From rgl%ruil...@gtempaccount.com on October 29, 2008 16:31:30 Support for websocket is something that I would like to work on, but its also something that has no immediate use (web browsers will need to implement it too).

Something that I would like to do first, is to bring http://orbited.org (btw, I participate in that project) sockets style into cherokee (once this technology matures in orbited). Though, I'm not sure if you think its a good idea...

If you don't already known, orbited proxies data between the front-end browser and a backend TCP socket server (eg. LiveHelp [0] demo app allows you to access a normal IRC server using your browser); for doing that, it needs to buffer data inside orbited until the browser pick it up (similar to what a normal http reverse proxy does, I guess). Its something like this:

browser<--http-->orbited<--tcp-->backend_tcp_server

Inside the browser is some JS magic/glue [1] to make this work too.

Maybe you think this is to heavy lifting for cherokee and prefer this scheme:

browser<--http-->cherokee<--http-->orbited<--tcp-->backend_tcp_server

But for this to work, we need cherokee http reverse proxy (preferably with keep- alive too).

Though, having this built-in cherokee would allow us to drop the second http proxy connection (and maybe it would run a little faster because inside cherokee this would be implemented in C instead of python) and the orbited process.

[0] http://orbited.org/wiki/LiveHelp [1] http://orbited.org/wiki/TCPSocket

danielniccoli commented 11 years ago

From johnnyop...@gmail.com on November 29, 2008 06:35:38 i just ejabberd (and/or other xmpp servers) with the http bind XEP (xmpp extension proposoal) for such things as live help and other http binding (non polling) connections

you can see a demo of such technology at www.speeqe.com.. or running on cherokee with the new reverse proxy handler at http://chat.localmomentum.net (type chat in the box)

this isn't exactly related to the ticket, it is just targeted at suggestion of orbitd/cometd implementations

danielniccoli commented 11 years ago

From bkcleme...@gmail.com on September 17, 2010 18:57:29 Hi,

admiring websockets support in mongrel2.. but it doesn't support ssl.

what do you think about websockets support now? Ready to move ahead?

danielniccoli commented 11 years ago

From alobbs on March 24, 2011 15:17:23 Interesting references:

http://en.wikipedia.org/wiki/WebSockets http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-06 http://socket.io/

danielniccoli commented 11 years ago

From rastrano on July 29, 2011 14:26:28 You don't need to implement websocket protocol but just to implement an http1.1 reverse proxy to use things like ape-project.org as a backend server

danielniccoli commented 11 years ago

From promethe...@gmail.com on July 28, 2012 09:38:10 Just wondering if there has been any updates or rough ETAs for this yet? Thanks!

ghost commented 9 years ago

Any news on this issue?

lkraav commented 8 years ago

Looks like a year later it hasn't moved either :/

skinkie commented 8 years ago

This requires some serious engineering effort. Ideally giving over file descriptors to the backend and not naively proxying.

emiliocampos-zevenet commented 6 years ago

I see this issue is old but I was wondering if websocket is supported in cherokee currently..

Thanks!

skinkie commented 6 years ago

@emiliocampos-zevenet we have not supported websocket upgrade, or proxying it to the next system.