World: r3wp
[!Cheyenne] Discussions about the Cheyenne Web Server
older newer | first last |
amacleod 18-Oct-2011 [10851] | The javascript is looking for the data in a callback...how do I wrap the data in a callback using rebol and cheyenne? |
Gabriele 19-Oct-2011 [10852x2] | just return the Javascript call, like the PHP does above. |
ie. if the function is called "myFunction", just return "myFunction({myData: 1, ...})" | |
amacleod 19-Oct-2011 [10854] | Thanks for the response Gabriele, but I just can't get this to work. If i'm using an rsp page to send back the request: I've got this: <% data: { one : "Singular sensation", two : "Beady little eyes", three : "Little birds pitch by my doorstep" } response/set-header 'Content-Type "application/json" print rejoin ["myfunc" "({" data "})"] %> Does not work... response in web page includes the function name which does not look like json data typically served back |
GrahamC 19-Oct-2011 [10855] | This works for me response/buffer: copy data response/set-header 'Content-type "application/json" |
amacleod 19-Oct-2011 [10856] | Graham! You are the best...thanks again! I had to use echo mode on the client (and i'm not really sure what that means) but it works! |
GrahamC 19-Oct-2011 [10857x2] | Glad it works ... |
More correctly Nenad is the best ... | |
Ryan 6-Nov-2011 [10859] | Can Cheyenne do SSL? |
Dockimbel 6-Nov-2011 [10860] | Not standalone, you would need a SSL front-end for that, like stunnel or nginx. |
Ryan 11-Nov-2011 [10861] | Cheyenne-server.org is taking a long while to serve the wiki pages. |
Dockimbel 11-Nov-2011 [10862x2] | Main PHP process froze. I'm restarting it. |
Done. | |
Janko 12-Nov-2011 [10864x3] | btw: I added few lines to cheyenne so it solves my only major hurdle with javascript (I need to write a lot of javascript for my apps, and I use sort of functional style). shorter syntax for anonymouse functions + returns. Nothing big or complex... f{ a, b | .... } ==> function ( a, b ) { ..... } r{ a, b | a + b } ==> function ( a, b ) { return a + b } not sure if it's usefull to anyone else or has place in real cheyenne, since it's just more of a hack (and not standard in any way). If anyone need it, let me know) |
I just added few lines to parse where it compiles in it's multilang stuff - which is btw very good since it does it only once and then holds cached version same as for languages :) | |
nenad designed cheyenne very well, that's why it's so fast! | |
Kaj 17-Nov-2011 [10867x2] | Here's inspiration for Cheyenne/Red: |
http://gwan.ch/ | |
Dockimbel 18-Nov-2011 [10869x3] | I am not sure that web developers are ready to jump to C for writing their server-side scripts (especially with error reports that include CPU registers content :-) ). |
The main benchmark graph is basically testing how fast each server is able to copy chunks of memory. ;-) http://gwan.ch/benchmark | |
Also, this is closed source software. | |
sqlab 18-Nov-2011 [10872] | I tried gwan on Windows with a logs directory as described in the manual. It crashed. Also the listen options on startup did not work. |
Kaj 18-Nov-2011 [10873x2] | Copying chunks of memory is what you do when serving static files, isn't it? |
Cheyenne/Red doesn't have to be closed source and write scripts in C | |
Dockimbel 18-Nov-2011 [10875] | Yes, especially when you're serving only to localhost (like in the gwan benchmark). |
Kaj 18-Nov-2011 [10876] | The main point is that G-WAN basically uses the BeOS/Syllable architecture: one process with worker threads |
Dockimbel 18-Nov-2011 [10877] | That's what I plan to do too for Red. |
Kaj 18-Nov-2011 [10878] | Specifically, it uses a pool of one thread per core for an event based architecture |
Dockimbel 18-Nov-2011 [10879] | That's the only rational way to use threads IMO too. |
Kaj 18-Nov-2011 [10880x2] | Well, there you have it: the other web servers don't |
Sqlab, G-WAN for Windows is discontinued, a year ago or so | |
sqlab 18-Nov-2011 [10882] | Yes, but I just used the examples as they are explained in the manual for the windows version. |
Kaj 18-Nov-2011 [10883x2] | It seems to have been developed on Server 2003. Maybe it doesn't work on newer Windows versions. It was discontinued in September 2009 |
That was probably when G-WAN had been in development for a year, so in any case it would be incomparable to the current Linux version, which is not mature yet, either | |
Janko 19-Nov-2011 [10885] | Just one question, nothing urgent. Would it be possible or smart if cheyenne would return http 401 to ajax request when the session times out? Now it basically return 200 and login form html (so I have to test for presence of </form>) instead of usuall JSON. |
Dockimbel 19-Nov-2011 [10886x2] | How can Cheyenne know that's an "ajax request"? |
It should be possible to either extend the AUTH config option to specify an "ajax" mode or to add a new AUTH-AJAX config option. | |
Janko 19-Nov-2011 [10888x2] | yes, that question crossed my mind :) ... maybe this should hold only if request has: "Accept: application/json" |
or like you check now it here is any html returned in debug more, if not you don't render the debug bar | |
Dockimbel 19-Nov-2011 [10890x3] | What if the request has other mime-types in addition to that one? :-) |
Cheyenne doesn't return HTML when a session times out, it only returns a 301 (or 302, I don't remember) to the URL you've specified in the config file after AUTH. | |
So, there's nothing to parse there for Cheyenne. | |
Janko 19-Nov-2011 [10893x2] | yes, I agree it's not so straightforward .. you could only redirect when there is accept: "*html*" .. |
yes, that is true.. you make a redirection | |
Dockimbel 19-Nov-2011 [10895] | So, if you redirect to an AJAX-generating script, it should be ok (depending how your application is handling login). |
Janko 19-Nov-2011 [10896] | but XMLHttpRequest isn't able to return any of 30* codes .. in case of 30* it automatically redirects and returns the result with 200 |
Dockimbel 19-Nov-2011 [10897x2] | So, if you could specify, for example: AUTH <http code> (instead of providing an URL), would it work with XHR? |
In such case, Cheyenne would just return an HTTP code with no content and would let the client handle the redirection to login form (or whatever other action is suited). | |
Janko 19-Nov-2011 [10899x2] | as I say, it's not a practical problem for me. :) Just a suggestion.. I am making external API and I got some developers that are very sensitive to propper HTTP so I am rewriting my api to all those codes.. But this is not a problem for that, since API doesn't use cheyenne's sessions.. just while I am rewriting my ajax code I thought of it. |
I can detect all other codes with XHR yes, except 3* .. so if server returned 401 without content JS would then make what is appropriate. | |
older newer | first last |