views:

1001

answers:

6

I've read a little about comet and also APE.

Which one is better? I want the users to see other users updated content. Like Google Wave.

And in comet, there are 2 versions: iframe vs traditional ajax. what is the difference and which is better. I dont quite understand it.

Thanks.

+2  A: 

Etherpad.com, the super fast real time document sharing tool used comet to provide near real time screen updates of collaborations from other editors. The company that makes etherpad (AppJet) just got purchased by Google to work on Google Wave

Check out http://etherpad.com/ep/about/faq

and http://code.google.com/p/etherpad/ (open source etherpad) to see their implementation.

I vote for comet because of the commercial success of etherpad and the google wave implementation using comet.

Stewart Robinson
but you havent answered the question. what is the difference between comet iframe and traditional ajax on their site?
weng
I didn't try and answer the question you asked, which I know is typical SO horror, I simply tried to let you know that Google and clever people like etherpad chose comet so there must be something in that.
Stewart Robinson
A: 

Isn't APE just an implementation of Comet? That's what is says on the product page.

spender
so what exactly is Comet? the technology for APE and Etherpad? Comet = reverse ajax?
weng
+1  A: 

Have a look at WebSockets. Chrome and newer Firefoxes already support it. You can fall back to comet when you really need it on other browsers.

Priit
+4  A: 

Comet = Umbrella term for the technology also known as "reverse ajax" or "long polling"

APE = An implementation of Comet technology.

You can think of Comet being a certain make of car while APE is the model.

See also:

http://en.wikipedia.org/wiki/Comet_%28programming%29

http://www.ape-project.org/ajax-push.html

Chris T
+2  A: 

Comet is a set of techniques useful for developing realtime applications. You have two main implementations: streaming and long polling.

In regular http requests the user sends the request to the server, receives the data (html, scrips, etc) and closes the connection - end of story. In streaming the connection is never closed by the client or the server, there's a single connection shared by both parties.

In long polling, you have a recurring connection that waits for a response. Basically, the browser sends a request to the server and sits there waiting until the server responds (the server only responds when he has new data for the client), then the connection is closed and it's up to the browser to reopen a connection, and the cycle repeats :) Of the two, this is the most used.

Comet in the browser typically requires a web server optimized for large numbers of long-lived HTTP connections, and a JavaScript client to communicate with the Comet server. So Ape is an installable server and Comet is the paradigm on which it is based. Here you have a list of comet implementations: http://cometdaily.com/maturity.html

sofia
A: 

I think you want to compare IFrame based techniques with Ajax (XMLHttp) based techniques.

I think the major difference is that you cannot read the response content of an AJAX request until the whole response is received by the browser. Which means, in order to simulate streaming, you will have to do something like this:

  1. Make a request to the server
  2. On getting a response read the response and make another request

The server can hold on the request if there isn't anything to return yet.

IFrame based solution on the other hand can return multiple script tags in response to a single request. There is no need to send another request until there is a (browser or server) request timeout.

Tahir Akhtar