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" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Monday, October 13, 2003 10:27 AM Subject: Re: [Dynapi-Help] Simple communication questions... > > See below: > > --- Clemens Eisserer <[EMAIL PROTECTED]> 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 is a > > problem > > in my eyes since JS hasnt support für Multithreading > > :( > > Using synchronous GET or post will cause the app to > wait until the server returns a response. > > > > Does anybody have better ideas, I´m not really happy > > with my stuff.. > > In the future there might be an easier method > > -- > Raymond Irving > > > lg Clemens > > > > PS1: How hard would it be to adopt dynapi to > > knoqueror? (only because it interrests me why so > > many > > examples dont work..) > > PS2: Dynapi is great! > > > > > ____________________________________________________________________________ __ > > Zwei Mal Platz 1 mit dem jeweils besten > > Testergebnis! WEB.DE FreeMail > > und WEB.DE Club bei Stiftung Warentest! > > http://f.web.de/?mc=021183 > > > > > > > > > ------------------------------------------------------- > > This SF.net email is sponsored by: SF.net Giveback > > Program. > > SourceForge.net hosts over 70,000 Open Source > > Projects. > > See the people who have HELPED US provide better > > services: > > Click here: http://sourceforge.net/supporters.php > > _______________________________________________ > > Dynapi-Help mailing list > > [EMAIL PROTECTED] > > > https://lists.sourceforge.net/lists/listinfo/dynapi-help > > > __________________________________ > Do you Yahoo!? > The New Yahoo! Shopping - with improved product search > http://shopping.yahoo.com > > > ------------------------------------------------------- > This SF.net email is sponsored by: SF.net Giveback Program. > SourceForge.net hosts over 70,000 Open Source Projects. > See the people who have HELPED US provide better services: > Click here: http://sourceforge.net/supporters.php > _______________________________________________ > Dynapi-Help mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/dynapi-help > > ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. SourceForge.net hosts over 70,000 Open Source Projects. See the people who have HELPED US provide better services: Click here: http://sourceforge.net/supporters.php _______________________________________________ Dynapi-Help mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dynapi-help