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

Will
3-Jan-2010
[7091x2]
here is the only websockets demo I found online http://orbited.org/wiki/LiveHelp
here is a flash based websocket so you can support old browsers and 
use websockets now 8-)  http://github.com/gimite/web-socket-js
Dockimbel
3-Jan-2010
[7093]
My demo is ready, but I found an issue to fix first with HTTP keepalive 
connections timeout colliding with web sockets timeout. The demo 
should be ready to try in a couple of hours (lunch time here).
Will
3-Jan-2010
[7094]
here is jQuery websocket plugin and chat demo that I will try to 
make work with Cheyenne
Graham
3-Jan-2010
[7095]
Midnight here ... I'll check it out tomorrow!
Will
3-Jan-2010
[7096x2]
great stuff Dock, btw.. 8-) I hope it can handle huge traffic!
forgot the link.. http://bloga.jp/ws/jq/wsload/s1.htm
Dockimbel
3-Jan-2010
[7098]
Web sockets server-side support code is much shorter than HTTP, so, 
in theory, it should scale higher.
Will
3-Jan-2010
[7099x3]
http://www.kegel.com/c10k.html;-P
how many connection do you estimate Uniserve can handle?
here a couple server that supports websockets http://www.tornadoweb.org/
http://orbited.org/http://www.kaazing.com/downloadmaybe there 
is something interesting for you
Dockimbel
3-Jan-2010
[7102x3]
Don't know, that would require to create some new benchmark tools 
to test the limits. Probably 1000+ opened connections and processing 
100+ messages / sec on a 2Ghz dual core.
REBOL is too slow to hit the c10k wall anyway.
Ah, maybe not with web sockets long-lasting connections...
Will
3-Jan-2010
[7105]
here is WebKit Web Socket design doc for anyone interested http://docs.google.com/View?id=dfm7gfvg_0fpjg22gh
Dockimbel
3-Jan-2010
[7106]
To pass the c10k wall, we would need to replace the select( ) call 
by one of the other polling methods. That means changing the C network 
layer.
Will
3-Jan-2010
[7107]
R2 may be too slow, but what about R3 and the C extension Uniserve? 
 maybe you should add a paypal button for us to start supporting 
this future development..
Dockimbel
3-Jan-2010
[7108]
That would certainly boost pure static resource serving speed going 
close to Apache and in some cases, close to Lighttpd, but for the 
RSP scripts, that won't change anything. Only threading could bring 
a good speed boost there.
Will
3-Jan-2010
[7109x2]
what is missing in R3 to have Cheyenne working on it? we should make 
sure Carl doesn't forget any feature needed, I sure wouldn't like 
being stuck with R2 because Cheyenne wont run on R3, do you have 
a list that we should relay to BrianH who will relay it to Carl ? 
I know it's still early, but having a plan should help
I mean the current version, not a feature enhanched one.. 8-)
Dockimbel
3-Jan-2010
[7111x5]
Did looked close enough yet to have an exhaustive list, but probably 
/Library would miss the most.
When R3 features list will stabilize (beta stage), I'll make a more 
complete evaluation of the time required to port Cheyenne (lack of 
/Library can be workaround but will cost a significant amount of 
time).
Did looked => Didn't
SVN r52
FEAT: web socket realtime chat demo added.

FEAT: changed socket application's SEND function specs to SEND client 
[port!] data [string!] (/with removed).

FIX:  timeout web socket issue clashing with HTTP keepalive timeouts. 
Web socket ports are no more timed out after 15sec.
For the chat demo, after upgrading to r52, run the new Cheyenne and 
point Chrome 4 to http://localhost/chat.html.You can try opening 
several windows with different user names to see how all parts react 
in realtime.
Will
3-Jan-2010
[7116]
ubercool! thank you! 8-))
Dockimbel
3-Jan-2010
[7117x3]
Seems that the chat demo becomes the standard way to demo web sockets. 
:-)
I'll put the demo online in a few minutes, so we can use it to chat.
Btw, it's my first real try at jQuery, so the code might not follow 
the jQuery best pratices, if some jQuery/JS experts know how to make 
the code more elegant or shorter, let me know.
Will
3-Jan-2010
[7120]
in the chat protocol, if a user close the browser window, will it 
signal "user quits the room" ? I should try...
Dockimbel
3-Jan-2010
[7121x2]
Yes, it should.
Btw, the ws:// url still needs to point to a RSP script, but with 
the socket app container, the script doesn't need anymore to physically 
exists.
Will
3-Jan-2010
[7123]
so in the chat.html example, the url ws://localhost/chat.rsp , instead 
of pointing to /chat.rsp it will look for a ws-app named 'chat , 
correct?
Dockimbel
3-Jan-2010
[7124x2]
No, the bindind between the URL (/chat.rsp) and the web socket app 
(chat) is done in the httpd.cfg file with the 'socket-app keyword.
Got the chat demo running online. If you have a web socket enabled 
browser (ex: Chrome 4), go visit here : http://demo.cheyenne-server.org:8080/chat.html
Henrik
3-Jan-2010
[7126]
damn, this is small stuff.
Dockimbel
3-Jan-2010
[7127x3]
Posting here the link for the server side of chat app : http://code.google.com/p/cheyenne-server/source/browse/trunk/Cheyenne/www/ws-apps/chat.r
Hope this will inspire some of you to ride the new wave of realtime 
web application that will surely start to come this year.
Be back later.
Davide
3-Jan-2010
[7130]
this web chat is using websocket on chrome (and comet in other browser).
http://www.ddmind.com/modules.php?name=gdp_easy_chat

It's a Rebol server and It works pretty well...great uptime and low 
cpu use.
Will
3-Jan-2010
[7131]
what server is that GDP-Server Alpha (Win32) REBOL ??
Davide
3-Jan-2010
[7132x2]
here is a quick overview of the rebcomet server:

http://www.screencast.com/users/Perekk/folders/Jing/media/6465c6f2-3c5c-4237-9ce4-0e6d61f74fb1
and 

http://www.screencast.com/users/Perekk/folders/Jing/media/d5c252ef-29dc-4c49-ac10-2ce98cd4518a
it's a server that I'm using in some commercial project, currently 
in alpha stage
Will
3-Jan-2010
[7134]
is it open source?
Davide
3-Jan-2010
[7135x2]
I will open source it (and documenting it), when it come out the 
alpha stage.

Currently the dialect is changing every day, so now would be too 
confusing
I would like to replace the tcp http server  with cheyenne.

Now I'm using a modified hipe server by Maarten Koopmans, but it's 
not async, so some things are currently not possible
Will
3-Jan-2010
[7137x2]
definitely, use cheyenne ;-)
cheyenne is not only a great server, it's code is pure art, you can 
make it do whatever 8-)
Kaj
3-Jan-2010
[7139x2]
I wrote an article about the new framework on our Syllable sites:
http://web.syllable.org/pages/index.html#id-2010-01-02-22-16