From: Raymond I. <xw...@ya...> - 2003-10-15 15:34:59
|
Wow! I've spend serveral hours looking into the push/pull (pushlet) solution and must say that I have managed to get a working prototype of the server-side push feature. I think it's possible that dynapi will be able to support both Push and/or Pull functionality. It's still a far way off and requires a lot of time to think through the design of the system (only if I had a full time dynapi job :) In short I think it will be as simple as adding an event listener to a dynobject: io.addEventListener({ onserver_someventhere : function(e,s) { // some code here }, onserver_anothereventhere : function(e,s) { // some code here } }); With this technology we could use ioelement with any webserver or server-side language to implement the push and/or pull requests With the push method the client is notified whenever the server invokes or raises an event: ws_invokeEvent('someeventhere') ... ws_invokeEvent('anothereventhere') The Push/Pull technique should work with all supported web browsers. The API will handle all the technical details so the user only have to listen in for an event from the server. What do you think? -- Raymond Irving --- Andrew Gillett <an...@zo...> wrote: > This may be a little off-topic, but another > interesting site that's worth a look at is > www.pushlets.com. Their basic setup is to use a > Java servlet to push javascript down a HTTP > connection to a hidden frame. And they have some > impressive demos :) The claim compatability with IE > (back to 4.01) and Netscape (back to 4.05). > > It would be _so impressive_ if an IOElement could do > a similar thing.... > > > Andrew Gillett > > > Raymond Irving wrote: > > Hi, > > > > For some more information on server-push and > > client-pull visit the following website: > > > > > http://wp.netscape.com/assist/net_sites/pushpull.html > > > > -- > > Raymond Irving > > > > --- Leif W <war...@us...> wrote: > > > >>I was thinking of how to approach this problem a > >>while back (for the case of > >>a simple online cardgame) but never came to > anything > >>concrete. However, I > >>did remember playing with some script (it was in > >>Perl but you could use any > >>language) which acts as a server-push, but it only > >>works for Mozilla, not > >>IE, and not tested in Opera or Safari. So, if you > >>want a true client-server > >>model with bidirectional communication I guess > >>you're best off coding a Java > >>applet for the browser, and whatever language > >>specialized server with your > >>own protocol. > >> > >>Anyways here's the example code I was using. > Also, > >>I was testing on an > >>Apache server and the script would not work unless > >>the filename began with > >>"nph-" which stands for non-parsed headers. > >> > >>============================= > >>BEGIN - Perl script > >>============================= > >>#! /usr/bin/perl -w > >>use strict; > >> > >>use CGI qw/:standard :push/; > >>use CGI::Carp 'fatalsToBrowser'; > >> > >>$CGI::POST_MAX = 1024 * 1024; # max 1M posts > >>$CGI::DISABLE_UPLOADS = 1; # no uploads > >>$| = 1; > >> > >>print multipart_init(-boundary=>'----here we > go!'); > >> > >>foreach (0 .. 4) { > >> print multipart_start(-type=>'text/plain'), > >> "The current time is > >>",scalar(localtime),"\n"; > >> if ($_ < 4) { > >> print multipart_end; > >> } else { > >> print multipart_final; > >> } > >> sleep 1; > >>} > >> > >>============================= > >>END - Perl script > >>============================= > >> > >>As you can see, most of the actual server-push > code > >>is handled by the CGI > >>Perl Module. So just taking a quick peek inside > to > >>show the relevent bits > >>of raw HTTP and HTML tricks used, or just using > >>telnet or wget to fetch from > >>the server. > >> > >>Headers: (first three added by Apache, last one > >>added by the script) > >> > >>HTTP/1.0 200 OK > >>Server: Apache/2.0.47 (Unix) mod_ssl/2.0.47 > >>OpenSSL/0.9.7c DAV/2 > >>PHP/4.3.4RC1 > >>Date: Tue, 14 Oct 2003 13:39:48 GMT > >>Content-Type: > >>multipart/x-mixed-replace;boundary="----here we > go!" > >> > >>Content: > >> > >>WARNING: YOUR BROWSER DOESN'T SUPPORT THIS > >>SERVER-PUSH TECHNOLOGY. > >>------here we go! > >>Content-Type: text/plain > >> > >>The current time is Tue Oct 14 09:39:48 2003 > >> > >>------here we go! > >>Content-Type: text/plain > >> > >>The current time is Tue Oct 14 09:39:49 2003 > >> > >>------here we go! > >>Content-Type: text/plain > >> > >>The current time is Tue Oct 14 09:39:50 2003 > >> > >>------here we go! > >>Content-Type: text/plain > >> > >>The current time is Tue Oct 14 09:39:51 2003 > >> > >>------here we go! > >>Content-Type: text/plain > >> > >>The current time is Tue Oct 14 09:39:52 2003 > >> > >>------here we go!-- > >>WARNING: YOUR BROWSER DOESN'T SUPPORT THIS > >>SERVER-PUSH TECHNOLOGY. > >> > >> > >> > >>----- Original Message ----- > >>From: "Raymond Irving" <xw...@ya...> > >>To: <dyn...@li...> > >>Sent: Monday, October 13, 2003 10:27 AM > >>Subject: Re: [Dynapi-Help] Simple communication > >>questions... > >> > >> > >> > >>>See below: > >>> > >>>--- Clemens Eisserer <Lin...@we...> wrote: > >>> > >>>>Hi again! > >>>> > >>>>I´m currently thinking about writing a simple > >>>>JS-Chat, so that the chat doent need to reload > >>>>always when > >>>>new messages recieve. > >>>>The problem is, that the server should connect > >> > >>to > >> > >>>>the client, which is not possible as far as I > >> > >>know, > >> > >>>>this > >>>>means the client has to use possling and aks all > >> > >>x > >> > >>>>seconds the server for new messages. > >>>> > >>>>1.) Is there no other was to do this than > >> > >>polling? > >> > >>>Not that I know of > >>> > >>> > >>>>2.) These are the only polling-ideas I had: > >>>>* Blocking soda-rpc function. Blocks till > >> > >>messages > >> > >>>>are on server. (Problem with blocking - no > >> > >>events > >> > >>>>etc?) > >>>>* Non-Blocking soda-rpc function. Returns -1 if > >>>>nothing is there... > >>>> > >>>>Is the blocking version possible, or will it > >> > >>cause > >> > >>>>the application to hand in the poll-loop. This > === message truncated === __________________________________ Do you Yahoo!? The New Yahoo! Shopping - with improved product search http://shopping.yahoo.com |