I just came back from the Real World Ajax Seminar in New York City.
The seminar was pretty good in general, but one really neat thing I saw was the innovation of a push model type of live update. The trick is to embed a small (1px by 1px) flash file. This embedded object has the capability of opening a socket to the server. The web page can then register itself to the server over that socket and bada-boom-bada-bing the server can PUSH information to all connected clients. The two demos of this functionality I saw were in the context of Flex programming and Ruby on Rails. The Flex guy showed outlining directions on a map in a browser -- those outlines showed up immediately in the two other browsers that were connected to the server on different sessions. The Ruby on Rails guy showed several examples of adding and deleting records in a web app through various interfaces with the server (browser, commandline, etc.). These adds and deletes showed up immediately in the other browsers that were connected in different sessions. Pretty neat stuff! This is definitely something that could be a big win for Seaside. I will be working on it over the next month to see if I can implement it. However, if someone beats me to the punch: all the better. -- Jason Rogers "Where there is no vision, the people perish..." Proverbs 29:18 _______________________________________________ Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
Jason Rogers wrote:
> I just came back from the Real World Ajax Seminar in New York City. > The seminar was pretty good in general, but one really neat thing I > saw was the innovation of a push model type of live update. > > The trick is to embed a small (1px by 1px) flash file. This embedded > object has the capability of opening a socket to the server. The web > page can then register itself to the server over that socket and > bada-boom-bada-bing the server can PUSH information to all connected > clients. > > The two demos of this functionality I saw were in the context of Flex > programming and Ruby on Rails. > > The Flex guy showed outlining directions on a map in a browser -- > those outlines showed up immediately in the two other browsers that > were connected to the server on different sessions. > > The Ruby on Rails guy showed several examples of adding and deleting > records in a web app through various interfaces with the server > (browser, commandline, etc.). These adds and deletes showed up > immediately in the other browsers that were connected in different > sessions. > > Pretty neat stuff! This is definitely something that could be a big > win for Seaside. I will be working on it over the next month to see > if I can implement it. However, if someone beats me to the punch: all > the better. > > have the user select among a selection for seamless switch. _______________________________________________ Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
> > The trick is to embed a small (1px by 1px) flash file. This embedded
> > object has the capability of opening a socket to the server. The web > > page can then register itself to the server over that socket and > > bada-boom-bada-bing the server can PUSH information to all connected > > clients. I doubt that this works if you are behind a firewall or a NAT router ... Google is using a nice technique for their Google Talk integration in Gmail: they send out a request to a file of virtually infinite size that is empty and only sent very slowly, just so that it doesn't time-out. Now they can simply push JavaScript code into that stream that will be immediately execute on the client. No need of polling or other dirty tricks, just a plain http request. It would be cool to have something like that in Seaside as well ;-) Cheers, Lukas -- Lukas Renggli http://www.lukas-renggli.ch _______________________________________________ Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
On 3/16/06, Lukas Renggli <[hidden email]> wrote:
> Google is using a nice technique for their Google Talk integration in > Gmail: they send out a request to a file of virtually infinite size > that is empty and only sent very slowly, just so that it doesn't > time-out. Now they can simply push JavaScript code into that stream > that will be immediately execute on the client. No need of polling or > other dirty tricks, just a plain http request. It would be cool to > have something like that in Seaside as well ;-) That sounds very interesting. I would love to see an implementation of that. - Wilkes _______________________________________________ Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
As would I.
________________________________ From: [hidden email] on behalf of Wilkes Joiner Sent: Fri 3/17/2006 8:07 AM To: The Squeak Enterprise Aubergines Server - general discussion. Subject: Re: [Seaside] push-model of interactive web pages On 3/16/06, Lukas Renggli <[hidden email]> wrote: > Google is using a nice technique for their Google Talk integration in > Gmail: they send out a request to a file of virtually infinite size > that is empty and only sent very slowly, just so that it doesn't > time-out. Now they can simply push JavaScript code into that stream > that will be immediately execute on the client. No need of polling or > other dirty tricks, just a plain http request. It would be cool to > have something like that in Seaside as well ;-) That sounds very interesting. I would love to see an implementation of that. - Wilkes _______________________________________________ Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside _______________________________________________ Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside winmail.dat (5K) Download Attachment |
> That sounds very interesting. I would love to see an implementation of that.
Plain Seaside, no Flash, no Java-Applet, ... http://www.lukas-renggli.ch/smalltalk/seaside/videos/comet.mov -- Lukas Renggli http://www.lukas-renggli.ch _______________________________________________ Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by Jason Rogers-4
> -----Original Message-----
> From: [hidden email] > [mailto:[hidden email]] On Behalf > Of Lukas Renggli > Sent: Tuesday, April 11, 2006 2:51 PM > To: The Squeak Enterprise Aubergines Server - general discussion. > Subject: Re: [Seaside] push-model of interactive web pages > > > That sounds very interesting. I would love to see an > implementation of that. > > Plain Seaside, no Flash, no Java-Applet, ... > > http://www.lukas-renggli.ch/smalltalk/seaside/videos/comet.mov > Now show us the code to do it. :) Awesome by the way. _______________________________________________ Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
> Now show us the code to do it. :) Awesome by the way.
It is the Comet package in the Seaside repository. Keep in mind, that it is more a hack or prove of concept for now. I guess it only works properly in Safari. As usual the tricky thing is to get the JavaScript code working. I am using a hidden iframe right now, meaning less JavaScript to write but having the browser never finishing loading. As a next step it would be interesting to see if the same could be done using XMLHttpRequest, meaning more JavaScript to write but having the browser(s) behave nicely ... Lukas > _______________________________________________ > Seaside mailing list > [hidden email] > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside > -- Lukas Renggli http://www.lukas-renggli.ch _______________________________________________ Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
On 4/12/06, Lukas Renggli <[hidden email]> wrote:
> As a next step it would be interesting to see if > the same could be done using XMLHttpRequest, meaning more JavaScript > to write but having the browser(s) behave nicely ... I like the approach of using XMLHttpRequest but having it complete after a period of time. So have the request go for 1 minute and after that the connection is closed and the browser fires off another XMLHttpRequest. This works around proxies that have short timeouts and close iframe connections after a certain period of time. The downside of both approaches though is the fact that some browsers limit the number of open connections. I believe this is mandated in the HTTP/1.1 specification? This means that if you have a long lived 'comet' connection then it may affect other xmlhttprequests going on if you go past that connection limit. I don't know if this is actually a problem in 'real world' apps though. Nice demo by the way! Chris. _______________________________________________ Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by Lukas Renggli
Very cool. I can't wait to have some time to play around with this.
- Wilkes On 4/11/06, Lukas Renggli <[hidden email]> wrote: > > That sounds very interesting. I would love to see an implementation of that. > > Plain Seaside, no Flash, no Java-Applet, ... > > http://www.lukas-renggli.ch/smalltalk/seaside/videos/comet.mov > > -- > Lukas Renggli > http://www.lukas-renggli.ch > _______________________________________________ > Seaside mailing list > [hidden email] > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside > Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by Chris Double
I redid the JavaScript part, so that it is using XMLHttpRequest and
not the ugly hidden iframe technique. It is now working in Safari and FireFox. Someone with an Internet Explorer could probably get it running there too. > I like the approach of using XMLHttpRequest but having it complete > after a period of time. So have the request go for 1 minute and after > that the connection is closed and the browser fires off another > XMLHttpRequest. This works around proxies that have short timeouts and > close iframe connections after a certain period of time. The problem when disconnecting is that the application might loose events, however my first try and the one I published just now are both reconnecting in case the connection is lost. Could somebody with a proxy confirm that it works? > The downside of both approaches though is the fact that some browsers > limit the number of open connections. I believe this is mandated in > the HTTP/1.1 specification? This means that if you have a long lived > 'comet' connection then it may affect other xmlhttprequests going on > if you go past that connection limit. I don't know if this is actually > a problem in 'real world' apps though. Yes, I observed that FireFox only allows one long-lived connection, but I guess it blocks the other windows because they request the same URL, and this could be easily fixed. Safari doesn't care, I can open 5 windows with the same comet connection at once. Now the next steps will be to find a better model for Seaside, but maybe after Smalltalk Solutions ... Cheers, Lukas -- Lukas Renggli http://www.lukas-renggli.ch _______________________________________________ Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
> Yes, I observed that FireFox only allows one long-lived connection,
> but I guess it blocks the other windows because they request the same > URL, and this could be easily fixed. Safari doesn't care, I can open 5 > windows with the same comet connection at once. There are a lot of network options that you can tune for firefox. Open about:config and search for connections. One interesting value network.http.max-persisten-connections-per-server which is 2 for me. Maybe increasing that helps. Yes I know this a hack and no general solution. Cheers Philippe _______________________________________________ Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
Free forum by Nabble | Edit this page |