From: Clemens E. <Lin...@we...> - 2003-10-12 18:19:56
|
Hi again!=20 =20 I=B4m currently thinking about writing a simple JS-Chat, so that the chat do= ent need to reload always when=20 new messages recieve.=20 The problem is, that the server should connect to the client, which is not= possible as far as I know, this=20 means the client has to use possling and aks all x seconds the server for = new messages.=20 =20 1.) Is there no other was to do this than polling=3F=20 =20 2.) These are the only polling-ideas I had:=20 * Blocking soda-rpc function. Blocks till messages are on server. (Problem= with blocking - no events etc=3F)=20 * Non-Blocking soda-rpc function. Returns -1 if nothing is there...=20 =20 Is the blocking version possible, or will it cause the application to hand= in the poll-loop. This is a problem=20 in my eyes since JS hasnt support f=FCr Multithreading :(=20 =20 Does anybody have better ideas, I=B4m not really happy with my stuff..=20 =20 lg Clemens=20 =20 PS1: How hard would it be to adopt dynapi to knoqueror=3F (only because it i= nterrests me why so many=20 examples dont work..)=20 PS2: Dynapi is great!=20 =20 =5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F= =5F=5F=5F=5F Zwei Mal Platz 1 mit dem jeweils besten Testergebnis! WEB.DE FreeMail und WEB.DE Club bei Stiftung Warentest! http://f.web.de/=3Fmc=3D021183 |
From: Raymond I. <xw...@ya...> - 2003-10-13 14:27:42
|
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 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 > Dyn...@li... > https://lists.sourceforge.net/lists/listinfo/dynapi-help __________________________________ Do you Yahoo!? The New Yahoo! Shopping - with improved product search http://shopping.yahoo.com |
From: Leif W <war...@us...> - 2003-10-14 13:54:07
|
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 a= ny 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-ser= ver model with bidirectional communication I guess you're best off coding a J= ava applet for the browser, and whatever language specialized server with you= r 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 wit= h "nph-" which stands for non-parsed headers. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D BEGIN - Perl script =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D #! /usr/bin/perl -w use strict; use CGI qw/:standard :push/; use CGI::Carp 'fatalsToBrowser'; $CGI::POST_MAX =3D 1024 * 1024; # max 1M posts $CGI::DISABLE_UPLOADS =3D 1; # no uploads $| =3D 1; print multipart_init(-boundary=3D>'----here we go!'); foreach (0 .. 4) { print multipart_start(-type=3D>'text/plain'), "The current time is ",scalar(localtime),"\n"; if ($_ < 4) { print multipart_end; } else { print multipart_final; } sleep 1; } =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D END - Perl script =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D 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 bit= s of raw HTTP and HTML tricks used, or just using telnet or wget to fetch f= rom 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=3D"----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 -----=20 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=B4m 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=FCr Multithreading > > :( > > Using synchronous GET or post will cause the app to > wait until the server returns a response. > > > > Does anybody have better ideas, I=B4m 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=3D021183 > > > > > > > > > ------------------------------------------------------- > > 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 > > Dyn...@li... > > > 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 > Dyn...@li... > https://lists.sourceforge.net/lists/listinfo/dynapi-help > > |
From: Raymond I. <xw...@ya...> - 2003-10-14 19:53:26
|
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 > 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 > === message truncated === __________________________________ Do you Yahoo!? The New Yahoo! Shopping - with improved product search http://shopping.yahoo.com |
From: Andrew G. <an...@zo...> - 2003-10-15 00:38:09
|
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 servl= et 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, >=20 > For some more information on server-push and > client-pull visit the following website: >=20 > http://wp.netscape.com/assist/net_sites/pushpull.html >=20 > -- > Raymond Irving >=20 > --- Leif W <war...@us...> wrote: >=20 >>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. >> >>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>BEGIN - Perl script >>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>#! /usr/bin/perl -w >>use strict; >> >>use CGI qw/:standard :push/; >>use CGI::Carp 'fatalsToBrowser'; >> >>$CGI::POST_MAX =3D 1024 * 1024; # max 1M posts >>$CGI::DISABLE_UPLOADS =3D 1; # no uploads >>$| =3D 1; >> >>print multipart_init(-boundary=3D>'----here we go!'); >> >>foreach (0 .. 4) { >> print multipart_start(-type=3D>'text/plain'), >> "The current time is >>",scalar(localtime),"\n"; >> if ($_ < 4) { >> print multipart_end; >> } else { >> print multipart_final; >> } >> sleep 1; >>} >> >>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>END - Perl script >>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >> >>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=3D"----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 -----=20 >>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=B4m 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=FCr >> >>Multithreading >> >>>>:( >>> >>>Using synchronous GET or post will cause the app >> >>to >> >>>wait until the server returns a response. >>> >>> >>> >>>>Does anybody have better ideas, I=B4m 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! >>>> >>>> >>> |
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 |
From: Leif W <war...@us...> - 2003-10-15 18:10:38
|
This looks very promising. I've skimmed through the whitepaper and a couple example sources but can't seem to find exactly what HTTP headers they're sending, or if they're not doing the multipart hack which is netscape and mozilla specific, but instead just constantly streaming code to an open socket which appears to be what they're doing. Just wanted to point out what I think is the main disadvantage of this design, and reiterate and elaborate upon that point just so it's understood and maybe either find some way to work around, or at least make sure we pass on the warning to developers who may use our library. Using this technique requires a socket to be constantly open between the client and the server. Normally, the browser makes a request, the socket is used then released and is free for the server to use to handle more requests. But with this technique, the sockets will be used directly proportional to the number of users using the push, plus the number of users otherwise requesting documents on the server. But most computers are compiled with 65535 sockets by default I believe. I am not sure if any operating systems allow for this number to be increased. I suspect that OSes like Linux and FreeBSD would allow this to be increased, by hacking the source code. It may or may not be as trivial as changing a C language #define. However it is done, having achieved the proper modification and documented it, recompiling the kernel source is usually trivial for admin that keep their software generally unmodified and up to date, and who don't rely solely on rpm or dselect to handle everything, but it may not be trivial if they have heavily modified sources, dependent on third party code, or something bizarre. But be aware, this may be in a shared hosting environment, or a dedicated web server, may be owned by the company that runs the hosting provider, or by the company that runs the web site. The usage of this on a moderate to high-traffic site hosted on a machine that is currently handling all it's requests with plenty of socket overhead may hit a a resource limitation which could affect the whole server, which could be undesirable, especially in a shared hosting environment. Also, there may be many levels of management or ownership between the web developer using this technique in the DynAPI, and the admin who would need to respond to the potential increased resource requirements if this technique were to be deployed on a relatively high-traffic website. Therefore I think it's imperative that we have some sort of disclaimer on the documentation page, and perhaps another page with either notes to increasing the number of sockets, or links to such resources or something. Leif ----- Original Message ----- From: "Raymond Irving" <xw...@ya...> To: <dyn...@li...> Sent: Wednesday, October 15, 2003 11:34 AM Subject: Re: [Dynapi-Help] Simple communication questions... > > 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 > > > ------------------------------------------------------- > 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 > Dyn...@li... > https://lists.sourceforge.net/lists/listinfo/dynapi-help > > |
From: Raymond I. <xw...@ya...> - 2003-10-15 20:16:14
|
In the DynAPI design sockets or http connections are not held or opened in definately. They're opened only for short periods of time (e.g. 50 secs) then released and reopened a few seconds later. This makes it posible to use both Push and Pull techniques to balance the connection load. The user (server-side) will have the option to adjust and balance the system while having the choice of using either push, pull or both. -- Raymond Irving --- Leif W <war...@us...> wrote: > This looks very promising. I've skimmed through the > whitepaper and a couple > example sources but can't seem to find exactly what > HTTP headers they're > sending, or if they're not doing the multipart hack > which is netscape and > mozilla specific, but instead just constantly > streaming code to an open > socket which appears to be what they're doing. > > Just wanted to point out what I think is the main > disadvantage of this > design, and reiterate and elaborate upon that point > just so it's understood > and maybe either find some way to work around, or at > least make sure we pass > on the warning to developers who may use our > library. Using this technique > requires a socket to be constantly open between the > client and the server. > Normally, the browser makes a request, the socket is > used then released and > is free for the server to use to handle more > requests. But with this > technique, the sockets will be used directly > proportional to the number of > users using the push, plus the number of users > otherwise requesting > documents on the server. But most computers are > compiled with 65535 sockets > by default I believe. I am not sure if any > operating systems allow for this > number to be increased. I suspect that OSes like > Linux and FreeBSD would > allow this to be increased, by hacking the source > code. It may or may not > be as trivial as changing a C language #define. > However it is done, having > achieved the proper modification and documented it, > recompiling the kernel > source is usually trivial for admin that keep their > software generally > unmodified and up to date, and who don't rely solely > on rpm or dselect to > handle everything, but it may not be trivial if they > have heavily modified > sources, dependent on third party code, or something > bizarre. But be aware, > this may be in a shared hosting environment, or a > dedicated web server, may > be owned by the company that runs the hosting > provider, or by the company > that runs the web site. The usage of this on a > moderate to high-traffic > site hosted on a machine that is currently handling > all it's requests with > plenty of socket overhead may hit a a resource > limitation which could affect > the whole server, which could be undesirable, > especially in a shared hosting > environment. Also, there may be many levels of > management or ownership > between the web developer using this technique in > the DynAPI, and the admin > who would need to respond to the potential increased > resource requirements > if this technique were to be deployed on a > relatively high-traffic website. > Therefore I think it's imperative that we have some > sort of disclaimer on > the documentation page, and perhaps another page > with either notes to > increasing the number of sockets, or links to such > resources or something. > > Leif > > ----- Original Message ----- > From: "Raymond Irving" <xw...@ya...> > To: <dyn...@li...> > Sent: Wednesday, October 15, 2003 11:34 AM > Subject: Re: [Dynapi-Help] Simple communication > questions... > > > > > > 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, > === message truncated === __________________________________ Do you Yahoo!? The New Yahoo! Shopping - with improved product search http://shopping.yahoo.com |
From: Leif W <war...@us...> - 2003-10-15 20:39:18
|
This is going to be one of those revolutionary technologies that puts the DynAPI over-the-top. :) Leif ----- Original Message ----- From: "Raymond Irving" <xw...@ya...> To: <dyn...@li...> Sent: Wednesday, October 15, 2003 4:14 PM Subject: Re: [Dynapi-Help] Simple communication questions... > > In the DynAPI design sockets or http connections are > not held or opened in definately. They're opened only > for short periods of time (e.g. 50 secs) then released > and reopened a few seconds later. This makes it > posible to use both Push and Pull techniques to > balance the connection load. > > The user (server-side) will have the option to adjust > and balance the system while having the choice of > using either push, pull or both. > > -- > Raymond Irving > > --- Leif W <war...@us...> wrote: > > This looks very promising. I've skimmed through the > > whitepaper and a couple > > example sources but can't seem to find exactly what > > HTTP headers they're > > sending, or if they're not doing the multipart hack > > which is netscape and > > mozilla specific, but instead just constantly > > streaming code to an open > > socket which appears to be what they're doing. > > > > Just wanted to point out what I think is the main > > disadvantage of this > > design, and reiterate and elaborate upon that point > > just so it's understood > > and maybe either find some way to work around, or at > > least make sure we pass > > on the warning to developers who may use our > > library. Using this technique > > requires a socket to be constantly open between the > > client and the server. > > Normally, the browser makes a request, the socket is > > used then released and > > is free for the server to use to handle more > > requests. But with this > > technique, the sockets will be used directly > > proportional to the number of > > users using the push, plus the number of users > > otherwise requesting > > documents on the server. But most computers are > > compiled with 65535 sockets > > by default I believe. I am not sure if any > > operating systems allow for this > > number to be increased. I suspect that OSes like > > Linux and FreeBSD would > > allow this to be increased, by hacking the source > > code. It may or may not > > be as trivial as changing a C language #define. > > However it is done, having > > achieved the proper modification and documented it, > > recompiling the kernel > > source is usually trivial for admin that keep their > > software generally > > unmodified and up to date, and who don't rely solely > > on rpm or dselect to > > handle everything, but it may not be trivial if they > > have heavily modified > > sources, dependent on third party code, or something > > bizarre. But be aware, > > this may be in a shared hosting environment, or a > > dedicated web server, may > > be owned by the company that runs the hosting > > provider, or by the company > > that runs the web site. The usage of this on a > > moderate to high-traffic > > site hosted on a machine that is currently handling > > all it's requests with > > plenty of socket overhead may hit a a resource > > limitation which could affect > > the whole server, which could be undesirable, > > especially in a shared hosting > > environment. Also, there may be many levels of > > management or ownership > > between the web developer using this technique in > > the DynAPI, and the admin > > who would need to respond to the potential increased > > resource requirements > > if this technique were to be deployed on a > > relatively high-traffic website. > > Therefore I think it's imperative that we have some > > sort of disclaimer on > > the documentation page, and perhaps another page > > with either notes to > > increasing the number of sockets, or links to such > > resources or something. > > > > Leif > > > > ----- Original Message ----- > > From: "Raymond Irving" <xw...@ya...> > > To: <dyn...@li...> > > Sent: Wednesday, October 15, 2003 11:34 AM > > Subject: Re: [Dynapi-Help] Simple communication > > questions... > > > > > > > > > > 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, > > > === message truncated === > > > __________________________________ > 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 > Dyn...@li... > https://lists.sourceforge.net/lists/listinfo/dynapi-help > > |
From: Cristian G. <cri...@pr...> - 2003-10-15 20:49:15
|
> documents on the server. But most computers are compiled with 65535 sockets > by default I believe. I am not sure if any operating systems allow for this > number to be increased. I suspect that OSes like Linux and FreeBSD would > allow this to be increased, by hacking the source code. It may or may not A network socket is a structure composed by an IP address, a port number and an IP protocol (TCP or UDP). There can only be 65536 ports on one IP; however a machine can have multiple IP addresses. Anyway, that's not the point :) >>The Push/Pull technique should work with all supported >>web browsers. ... provided the user has the Java Runtime Environment (JRE aka JVM - Java Virtual Machine, the bytecode interpreter) installed and enabled in browser. As you know, Microsoft no longer ships a JVM with Windows, it has to be downloaded from Sun website and installed. The user might not be able to do it (not having administrative rights, company software policy, bandwidth limitations). A Java applet opening a TCP connection back to the server will fail if the user is behind a firewall (only allowing connections to certain ports, 80 and 443 for example) or behind a (socks) proxy. The HTTP protocol, as Leif said, is stateless (well, sort of, if not using keep-alives) meaning the browser makes a request, the server responds then the connection is closed. >>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? Why not using asynchronous techniques, for instance polling a dynamic server page (PHP/ASP/JSP/CGI), writing the result in an iFrame or hidden frame? I would stay away from Java as much as possible. >>Raymond Irving > Leif Grig |
From: Raymond I. <xw...@ya...> - 2003-10-15 21:03:51
|
We don't need Java or a plugin on the browser. All that we need is JavaScript. That all that there is to it. nothing more nothing less :) Trust me I believe it all posible only it I can find the time to get started. -- Raymond Irving --- Cristian Grigoriu <cri...@pr...> > > ... provided the user has the Java Runtime > Environment (JRE aka JVM - > Java Virtual Machine, the bytecode interpreter) > installed and enabled in > browser. As you know, Microsoft no longer ships a > JVM with Windows, it > has to be downloaded from Sun website and installed. > The user might not > be able to do it (not having administrative rights, > company software > policy, bandwidth limitations). > > A Java applet opening a TCP connection back to the > server will fail if > the user is behind a firewall (only allowing > connections to certain > ports, 80 and 443 for example) or behind a (socks) > proxy. The HTTP > protocol, as Leif said, is stateless (well, sort of, > if not using > keep-alives) meaning the browser makes a request, > the server responds > then the connection is closed. > > >>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? > > Why not using asynchronous techniques, for instance > polling a dynamic > server page (PHP/ASP/JSP/CGI), writing the result in > an iFrame or hidden > frame? > > I would stay away from Java as much as possible. > > >>Raymond Irving > > Leif > > Grig > > > > ------------------------------------------------------- > 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 > Dyn...@li... > https://lists.sourceforge.net/lists/listinfo/dynapi-help __________________________________ Do you Yahoo!? The New Yahoo! Shopping - with improved product search http://shopping.yahoo.com |
From: Leif W <war...@us...> - 2003-10-15 22:44:33
|
----- Original Message ----- From: "Raymond Irving" <xw...@ya...> To: <dyn...@li...> Sent: Wednesday, October 15, 2003 5:03 PM Subject: Re: [Dynapi-Help] Simple communication questions... Not so simple afterall I guess. :-) Good thing we had this discussion, lot of good things coming out of it. > We don't need Java or a plugin on the browser. All > that we need is JavaScript. That all that there is to > it. nothing more nothing less :) You're going to need some server side scripting, right? That may be true if you're running on an IIS server with ASP with JScript support. But for Apache, you're going to need other languages like Perl, PHP, Java, TCL, C, C++, etc. I'll help where I can of course, and if there's any other's out there by all means lend a hand. :) > Trust me I believe it all posible only it I can find > the time to get started. Any way we can adopt any of the work that was already done with the Pushlet project, and just port it over to different languages? Even if we just started with the object model and designed our code after that, or something. Just not to reinvent the wheel if possible. Leif > -- > Raymond Irving > > > > --- Cristian Grigoriu <cri...@pr...> > > > ... provided the user has the Java Runtime > > Environment (JRE aka JVM - > > Java Virtual Machine, the bytecode interpreter) > > installed and enabled in > > browser. As you know, Microsoft no longer ships a > > JVM with Windows, it > > has to be downloaded from Sun website and installed. > > The user might not > > be able to do it (not having administrative rights, > > company software > > policy, bandwidth limitations). > > > > A Java applet opening a TCP connection back to the > > server will fail if > > the user is behind a firewall (only allowing > > connections to certain > > ports, 80 and 443 for example) or behind a (socks) > > proxy. The HTTP > > protocol, as Leif said, is stateless (well, sort of, > > if not using > > keep-alives) meaning the browser makes a request, > > the server responds > > then the connection is closed. > > > > >>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? > > > > Why not using asynchronous techniques, for instance > > polling a dynamic > > server page (PHP/ASP/JSP/CGI), writing the result in > > an iFrame or hidden > > frame? > > > > I would stay away from Java as much as possible. > > > > >>Raymond Irving > > > Leif > > > > Grig > > > > > > > > > ------------------------------------------------------- > > 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 > > Dyn...@li... > > > 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 > Dyn...@li... > https://lists.sourceforge.net/lists/listinfo/dynapi-help > > |
From: Raymond I. <xw...@ya...> - 2003-10-16 03:03:17
|
--- Leif W <war...@us...> wrote: > Any way we can adopt any of the work that was > already done with the Pushlet > project, and just port it over to different > languages? This I'm not sure of as yet. > Even if we just > started with the object model and designed our code > after that, or > something. Just not to reinvent the wheel if > possible. No, we're not reinventing the wheel. Once we have the concept of how it works then we can make the necessary adjustments. -- Raymond Irving > Leif > > > -- > > Raymond Irving > > > > > > > > --- Cristian Grigoriu > <cri...@pr...> > > > > ... provided the user has the Java Runtime > > > Environment (JRE aka JVM - > > > Java Virtual Machine, the bytecode interpreter) > > > installed and enabled in > > > browser. As you know, Microsoft no longer ships > a > > > JVM with Windows, it > > > has to be downloaded from Sun website and > installed. > > > The user might not > > > be able to do it (not having administrative > rights, > > > company software > > > policy, bandwidth limitations). > > > > > > A Java applet opening a TCP connection back to > the > > > server will fail if > > > the user is behind a firewall (only allowing > > > connections to certain > > > ports, 80 and 443 for example) or behind a > (socks) > > > proxy. The HTTP > > > protocol, as Leif said, is stateless (well, sort > of, > > > if not using > > > keep-alives) meaning the browser makes a > request, > > > the server responds > > > then the connection is closed. > > > > > > >>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? > > > > > > Why not using asynchronous techniques, for > instance > > > polling a dynamic > > > server page (PHP/ASP/JSP/CGI), writing the > result in > > > an iFrame or hidden > > > frame? > > > > > > I would stay away from Java as much as possible. > > > > > > >>Raymond Irving > > > > Leif > > > > > > Grig > > > > > > > > > > > > > > > ------------------------------------------------------- > > > 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 > > > Dyn...@li... > > > > > > 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 > > Dyn...@li... > > > 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 > Dyn...@li... > https://lists.sourceforge.net/lists/listinfo/dynapi-help __________________________________ Do you Yahoo!? The New Yahoo! Shopping - with improved product search http://shopping.yahoo.com |
From: Brian H. <bg...@ke...> - 2003-10-16 11:52:42
|
Hey guys, ColdFusion MX and compiled Perl code via Activestate.. I love using compiled Perl code, as it allows me to write CGI applications that do not require my ISP to have perl and/or supporting modules. ColdFusion MX, is great because it is easy, and supported on any major platform. Brian Hayes -----Original Message----- From: dyn...@li... [mailto:dyn...@li...] On Behalf Of Leif W Sent: Wednesday, October 15, 2003 6:45 PM To: dyn...@li... Subject: Re: [Dynapi-Help] Simple communication questions... ----- Original Message ----- From: "Raymond Irving" <xw...@ya...> To: <dyn...@li...> Sent: Wednesday, October 15, 2003 5:03 PM Subject: Re: [Dynapi-Help] Simple communication questions... Not so simple afterall I guess. :-) Good thing we had this discussion, lot of good things coming out of it. > We don't need Java or a plugin on the browser. All > that we need is JavaScript. That all that there is to > it. nothing more nothing less :) You're going to need some server side scripting, right? That may be true if you're running on an IIS server with ASP with JScript support. But for Apache, you're going to need other languages like Perl, PHP, Java, TCL, C, C++, etc. I'll help where I can of course, and if there's any other's out there by all means lend a hand. :) > Trust me I believe it all posible only it I can find > the time to get started. Any way we can adopt any of the work that was already done with the Pushlet project, and just port it over to different languages? Even if we just started with the object model and designed our code after that, or something. Just not to reinvent the wheel if possible. Leif > -- > Raymond Irving > > > > --- Cristian Grigoriu <cri...@pr...> > > > ... provided the user has the Java Runtime > > Environment (JRE aka JVM - > > Java Virtual Machine, the bytecode interpreter) > > installed and enabled in > > browser. As you know, Microsoft no longer ships a > > JVM with Windows, it > > has to be downloaded from Sun website and installed. > > The user might not > > be able to do it (not having administrative rights, > > company software > > policy, bandwidth limitations). > > > > A Java applet opening a TCP connection back to the > > server will fail if > > the user is behind a firewall (only allowing > > connections to certain > > ports, 80 and 443 for example) or behind a (socks) > > proxy. The HTTP > > protocol, as Leif said, is stateless (well, sort of, > > if not using > > keep-alives) meaning the browser makes a request, > > the server responds > > then the connection is closed. > > > > >>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? > > > > Why not using asynchronous techniques, for instance > > polling a dynamic > > server page (PHP/ASP/JSP/CGI), writing the result in > > an iFrame or hidden > > frame? > > > > I would stay away from Java as much as possible. > > > > >>Raymond Irving > > > Leif > > > > Grig > > > > > > > > > ------------------------------------------------------- > > 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 > > Dyn...@li... > > > 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 > Dyn...@li... > 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 Dyn...@li... https://lists.sourceforge.net/lists/listinfo/dynapi-help |
From: William A. <wi...@25...> - 2003-10-15 23:19:14
|
On Wed, Oct 15, 2003 at 06:44:58PM -0400, Leif W wrote: > ----- Original Message ----- > From: "Raymond Irving" <xw...@ya...> > To: <dyn...@li...> > Sent: Wednesday, October 15, 2003 5:03 PM > Subject: Re: [Dynapi-Help] Simple communication questions... > > Not so simple afterall I guess. :-) Good thing we had this discussion, lot > of good things coming out of it. > > > We don't need Java or a plugin on the browser. All > > that we need is JavaScript. That all that there is to > > it. nothing more nothing less :) > > You're going to need some server side scripting, right? That may be true if > you're running on an IIS server with ASP with JScript support. But for > Apache, you're going to need other languages like Perl, PHP, Java, TCL, C, > C++, etc. I'll help where I can of course, and if there's any other's out > there by all means lend a hand. :) > > > Trust me I believe it all posible only it I can find > > the time to get started. > > Any way we can adopt any of the work that was already done with the Pushlet > project, and just port it over to different languages? Even if we just > started with the object model and designed our code after that, or > something. Just not to reinvent the wheel if possible. > > Leif I'm jumping in a little late in the game, but there must be a dozen different tiny protocols to bind JavaScript to CGI. Ironically, for every other feasible language combination there are exactly two; namely XML-RPC and SOAP. XML-RPC should be light enough, and there are several JavaScript libraries already out in the wild. And of course, you then basically get Perl, PHP, Python, Ruby, Java, ASP, C, C++, C# et al on the server-side for free, because XML-RPC is a widely implemented standard. Here is a list of XML-RPC implementations: http://www.xmlrpc.com/directory/1568/implementations There are at least 2 extant JavaScript implementations listed. Back to your regularly scheduled broadcast.... |
From: William A. <wi...@25...> - 2003-10-15 23:25:10
|
I think I just put my foot in my mouth w/ the XML-RPC (i.e., SODA-RPC already being in the tree). Note to the moderator: nix these messages if you can. - Bill |
From: Clemens E. <lin...@we...> - 2003-10-16 20:58:44
|
Hi there! > 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. Wow, great! > 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') To implement the whole thing with EvenListeners is a good idea in my eyes. It would keep the whole thing simple and tell the client that something happend and the client can act is needed. > 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? I dont know if you´re asking me or someone different. However, I think its really great! This would enable JS-developers to ship arround one of the biggest problems when using javascript for interactive-multiuser-stuff: The bidirectional communication. Of couse, the current implementation isnt really bidirectional, because it forces the client to act, when the server tells the client to do something, but it keeps things simple and allows the js-programmer to do the same thing like with "real" bidirectional communication. Really great, dynapi rocks so much! lg Clemens PS: Is there a efficient way to add html to a dynlayer, instead of: strold = dynLayer.getHTML(); dynLayer.setHTML(strold+strnew); PS2: How hard would it eventuelle be to port Dynapi-3 to Konqueror3? How long did it take to port dynapi to opera7? However I use Mozzi, I think its more important to support Konqueror than NS4, because the number us NS4-users decreases every day. With Safari + Konqueror many users will use the KHTML-engine althought its not my taste... |
From: Bruce T. <blu...@ya...> - 2003-10-16 21:26:45
|
Push to make Konqueror DOM compliant. ;-) --- Clemens Eisserer <lin...@we...> wrote: > > PS2: How hard would it eventuelle be to port Dynapi-3 to Konqueror3? > How long did it take to port dynapi to opera7? > However I use Mozzi, I think its more important to support Konqueror > than NS4, because the number us NS4-users decreases every day. > With Safari + Konqueror many users will use the KHTML-engine > althought > its not my taste... > ===== www.bluewolverine.com __________________________________ Do you Yahoo!? The New Yahoo! Shopping - with improved product search http://shopping.yahoo.com |