r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[!Cheyenne] Discussions about the Cheyenne Web Server

Dockimbel
22-Dec-2009
[6593x2]
Will: good suggestion, local domains extensions are not restricted. 
I like the .lan :-).
Janko: I'll give it a deep look today.
Kaj
22-Dec-2009
[6595]
Cool, thanks Doc. I didn't report it because I'm on an older version. 
It works OK for the rest, so no rush to upgrade yet
Terry
22-Dec-2009
[6596]
think built-in JSON support, COMET, etc
Comet is dead.. look into Websockets
Dockimbel
22-Dec-2009
[6597x2]
SVN r42 : mutiple Cheyenne instances now supported. Please test it 
fully before putting in production.
OS X version not tested but should run ok.
Terry
22-Dec-2009
[6599]
Seriously, if you jump on the websocket server protocol, you can 
quickly promote Cheyenne to the masses.. but if you wait, you'll 
lose the window of opportunity.
Dockimbel
22-Dec-2009
[6600]
Cheyenne is not ready for the "masses" yet. No docs, no UI for config 
options,...
Terry
22-Dec-2009
[6601x4]
by "masses" i mean the geeks
web sockets are an HTML 5 spec
I imagine you could build a web socket protocol with Cheyenne in 
a few hours.. would take me a week
the protocol, by the way, is ws:// or wss:// for SSL
Dockimbel
22-Dec-2009
[6605]
Apache already supports web sockets using a python plugin : http://code.google.com/p/pywebsocket
Terry
22-Dec-2009
[6606x4]
Yeah, I've played with it. It's cumbersome.
Here's the W3C Web Sockets API if you're feeling so inclined. 
http://dev.w3.org/html5/websockets/#the-websocket-interface
Not sure if you recall, but the work I was doing with Cheyenne was 
trying to implement  Web sockets before Web sockets even existed.
I think you described it as "no longer HTTP" or something to that 
effect :)
Dockimbel
22-Dec-2009
[6610]
I'm having a quick look at the ws protocol, just curious to see how 
it has been designed.
Terry
22-Dec-2009
[6611x2]
The problem I've always had with Cheyene and Uniserve services was 
the 'disconnect' between the two.. ie: having a uniserve 'socket' 
connect with an 'http' connection and vice-versa.  The ws:// protocol 
was what i was looking for.. the best of both worlds. Deliver some 
hypertext, then push data to javascript in the browser.
It's pretty straight-forward.. check out this PHP web socket server 
.. 140 lines

http://code.google.com/p/phpwebsocket/source/browse/trunk/phpwebsocket/server.php
Dockimbel
22-Dec-2009
[6613x2]
Cheyenne is already doing such kind of "connections", for example, 
PHP requests : HTTP => Cheyenne => TCP => PHP server.
Thanks for the PHP server script...looks pretty simple to implement.
Terry
22-Dec-2009
[6615x3]
Yeah, it seems like a no-brainer for Cheyenne to easily implement 
this new protocol... at least for a Cheyenne guru.
Some advantages to the ws:// spec

- Seamlessly traverse firewalls and routers
- Allow duly authorized cross-domain communication
- Integrate well with cookie-based authentication
- Integrate with existing HTTP load balancers
- Be compatible with binary data
Another good read on the subject
http://cometdaily.com/2008/07/04/html5-websocket/
Dockimbel
22-Dec-2009
[6618x2]
I think that it's simple enough to be implemented in a couple of 
hours including reading the full specifications.
I might give it a try tomorrow. ;-)
Kaj
22-Dec-2009
[6620x2]
That would be awesome
I would definitely upgrade then ;-)
Dockimbel
22-Dec-2009
[6622]
Ah, now I got a real motivation to add it. ;-)
Kaj
22-Dec-2009
[6623]
:-)
Will
22-Dec-2009
[6624]
So Terry is this obsolete stuff? http://www.ape-project.org/
Kaj
22-Dec-2009
[6625x3]
Seriously, I'm simply using the Cheyenne I integrated into Syllable 
Server 0.3. Hope to postpone upgrading Cheyenne and other packages 
until I release a complete new Syllable Server
Will, such Comet solutions will probably include web sockets soon, 
as web sockets is an advanced form of Comet
But then, all the complexity of the Comet solutions will definitely 
look out of place
Will
22-Dec-2009
[6628]
As of now there are no browsers that supports websockets, apart from 
Chromium http://blog.chromium.org/2009/12/web-sockets-now-available-in-google.html

meanwhile kaazing emulate that for older browsers http://www.kaazing.org/confluence/display/Doc/Architecture+Overview#kegfeatures
Kaj
22-Dec-2009
[6629]
I have to research more, but it seems the http://js.iolibrary adds 
web sockets to older browsers
Will
22-Dec-2009
[6630]
post got grumbled, kaazing also cope with older browsers
Kaj
22-Dec-2009
[6631x3]
The trick is that web sockets needs a little server support to down/upgrade 
(as you see it) a HTTP connection to a more flexible TCP connection
Of course, we had that since the birth of the Internet. This is effectively 
just an idiotic workaround to get our Internet back from firewalls
But once it's a web standard, they can't have the nerve to close 
it off anymore
Terry
22-Dec-2009
[6634x3]
Will: I would say Comet is obsolete.. Comet is a hack at best.
Web sockets are not an advanced form of Comet.
Though Comet and Ajax can both deliver end-user experiences that 
provide desktop-like functionality and low user-perceived latency, 
only Web Sockets lives up to the promise of providing a native means 
to accurately and efficiently stream events to and from the browser 
with negligible latency. It is by far the most comprehensive solution 
for delivering real-time information over the Web. Not only does 
it provide full asynchronous duplex streaming communication with 
a single TCP/IP connection, but also benefits from few HTTP headers 
and more importantly allows the same message format to be used by 
both the browser and the origin service.
Kaj
22-Dec-2009
[6637x2]
Well, it's a matter of definition. They're very similar, but web 
sockets require the server support
It seems js.io is an alternative to web sockets. If it's true that 
web sockets need native browser support just like the server side, 
Comet will still have a long life
Dockimbel
22-Dec-2009
[6639]
Janko: "About code loading on on-page-start : yes I know of that, 
I am using it as dev setup so I know latest code is reloaded each 
pageload." 


There's an easier solution for that: add -w 0 argument to Cheyenne's 
command line, this will ensure that the worker process will be reloaded 
for each new request. Here's the command line I use to run Cheyenne 
on my development boxes : C:\Dev\SDK\tools\rebcmdview.exe -s cheyenne.r 
-vv -w 0
Terry
22-Dec-2009
[6640]
Kaj, "long life" is a relative term.  I suppose it depends on the 
service. If i build a service that lets you access my killer app, 
but say "you need to use Chrome" then 'long life'  may be irrelevant.
Kaj
22-Dec-2009
[6641x2]
To you, but Comet will live happily ever after. :-) Anyway, I know 
what you mean
The point is that there can be no killer app targeting just a few 
percent of the market