World: r3wp
[!Cheyenne] Discussions about the Cheyenne Web Server
older newer | first last |
Gregg 29-Dec-2009 [6940] | Thanks for including all the comments in the code too! |
Dockimbel 29-Dec-2009 [6941x3] | That's poor's man documentation but as it is a brand new framework and still fresh in my mind, it's better to get it writtten down now, even if it's a draft. |
Btw, you can test this socket app using the two test script (look at the source code to get an idea) : http://localhost/ws.html http://localhost/ws2.html | |
I'll finish the pending items tomorrow and will try to provide a more fancy example by building a realtime web chat application. | |
Gregg 29-Dec-2009 [6944x2] | Why 'deconnect rather than 'disconnect? |
As a word choice that is. | |
Dockimbel 29-Dec-2009 [6946x3] | Ah good one, maybe because I read 'disconnect used in a framework somewhere and my mind stored "deconnect" (almost french word for 'disconnect). I'll fix that asap. |
Spelling issue fixed in SVN r47. | |
Run Cheyenne in verbose mode (-v is enough) to see how the browser and the server interact. | |
Terry 30-Dec-2009 [6949x3] | Which version of Rebol is required? Im getting an error with View 2.7.6.3.1 |
Script: "Cheyenne Web Server" (8-Mar-2009) Script: "Untitled" (none) make object! [ code: 300 type: 'script id: 'no-value arg1: 'scope arg2: none arg3: none near: [either root: select scope 'root-dir] where: 'read ] | |
(winxp) | |
sqlab 30-Dec-2009 [6952] | same issue here |
Dockimbel 30-Dec-2009 [6953x3] | I forgot to commit one file. |
Fixed in SVN r48 | |
SVN r49 : FEAT: socket's 'on-message event now receives also the client port as 2nd argument FEAT: RSP session access added for socket apps. FEAT: minor memory usage reduction in mod-rsp.r. FIX: additional 'disconnect misspelling fixed in HTTPd.r. | |
Terry 30-Dec-2009 [6956] | Working fine now. Seems very stable. Can only get a websocket connection on localhost, no connection from another computer on the same subnet. |
Dockimbel 30-Dec-2009 [6957x3] | Good to heard. I'm still making a lot of small changes and fixes, so it's should not be considered fully stable yet. |
The ws://localhost/ws.rsp URL is hardcoded in example pages. Just change the JS code to point to the adequate domain of your server to be reachable from the LAN. | |
heard => hear. | |
Terry 30-Dec-2009 [6960x4] | In your example, what is "do-task data" in the on-message function doing? |
(ws2.html) | |
'do-task processes the argument data... what does it process? Rebol? | |
Great, first you spoil my christmas break, now New Years. | |
Dockimbel 30-Dec-2009 [6964x4] | :-) |
'do-task sends the argument string to a background worker process, so you can do whatever you want with it without blocking the main server. The target used is the initial RSP script (ws.rsp in the example). | |
do-task allows you to have multitasking in you web socket application. Internally, it re-uses the task-master service and the RSP IPC system. That way, you can easily integrate one or several web socket service or applications in existing RSP scripts or webapps. | |
the "data" argument can contain anything as long as it's a string! value. It will be available on the RSP side in request/content/data. | |
Terry 30-Dec-2009 [6968x2] | so do-task in your example would simply echo back to the browser? |
and ws.rsp is more like a message broker? | |
Dockimbel 30-Dec-2009 [6970x2] | do-task in this example, sends the raw incoming data from the browser to a worker process using ws.rsp script to generate a response that is sent back to the web socket app (if a /on-done callback has been defined) or directly to the client browser. |
In this simple example, right, the backend RSP script acts as a message broker. | |
Terry 30-Dec-2009 [6972x2] | so the "worker process".. is that the ws.rsp script itself? |
think I need a diagram :) | |
Dockimbel 30-Dec-2009 [6974] | The /on-done callback is for post-processing the response and decide what to do with it. It will be available in the new revision I'm commiting right now. |
Terry 30-Dec-2009 [6975x2] | Here's a fun on-timer... |
on-timer: does [ x: read http://www.rebol.org foreach port clients [ send/with x port ] ] | |
Dockimbel 30-Dec-2009 [6977] | Worker process = task-handler process = background process = helper process, all different expressions for the same thing : a background REBOL process used for giving multi-tasking abilities to Cheyenne. |
Terry 30-Dec-2009 [6978] | the browser is processing the complete html.. groovy |
Dockimbel 30-Dec-2009 [6979x3] | Yeah, you could make a realtime RSS feeder easily with web sockets. |
SVN r50 FEAT: /on-done callback support added to 'do-task function in socket application. FIX: socket application API now has more homogeneous argument passing (client port always first now). | |
Going now to see Avatar...will be back in a few hours. | |
Terry 30-Dec-2009 [6982x2] | Enjoy.. waiting for the line-ups to die down a bit :) |
Nice work once again Nenad. | |
Dockimbel 30-Dec-2009 [6984] | Thanks, it's fun to do and will probably be very useful for all Cheyenne's users. |
Janko 30-Dec-2009 [6985] | Yes, awesome work.. and enjoy the Avatar .. I plan to go see it soon too |
joannak 30-Dec-2009 [6986] | Just got home, were watchin Avatar 3D with friends and had some dinner.. (Is there a group for movies?) |
Henrik 30-Dec-2009 [6987] | If not, create one. We have a music group, so why not. |
Graham 30-Dec-2009 [6988x2] | I've often wondered whether I could use Cheyenne for doing upgrades. So, for example my main application passes its own name, location and the upgrade download location to Cheyenne in a url read and then quits ... |
Cheyenne then downloads the update, and writes it over the application ( which has quit so it is no longer locked by windows ). | |
older newer | first last |