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 <[EMAIL PROTECTED]> 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" <[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!
------------------------------------------------------- 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