Server push: comet vs ape?

后端 未结 8 1001
难免孤独
难免孤独 2021-02-15 16:24

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

相关标签:
8条回答
  • 2021-02-15 16:35

    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.

    0 讨论(0)
  • 2021-02-15 16:41

    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.

    0 讨论(0)
  • 2021-02-15 16:47

    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.

    0 讨论(0)
  • 2021-02-15 16:48

    APE is an implementation of Comet. It provides a non-blocking IO server and JS client libraries to implement a publish/subscribe messaging system.

    The APE server itself can be programmed using server-side javascript. Server side code such as PHP/Ruby/whatever may broadcast data through APE by issuing 'commands' to the APE server.

    Connected clients receive this data by listening for 'Raws' ; which are events and data sent from the APE server to the client.

    0 讨论(0)
  • 2021-02-15 16:49

    Comet is a technology, APE is one of a lot implementations. What about iframe vs traditional ajax? Use HTML5 WebSockets anywhere you can use it.

    At now all modern browsers use XMLHttpRequest for ajax requests (client-to-server, something back and end). But sometimes JS-applications sending files via iframes and its ok. Not all implementations of XMLHttpRequests supports multipart-data transport (Chrome and modern FF afaik). WebSockets was created especially for Comet-like technologies (when client opening only one connection and web-server pushes some data to client via opened stream or WebSocket) so use it if you can.

    BTW I'll recommend you to use independent web-server for your Comet-streams (or channels).

    P.S. I like APE.

    0 讨论(0)
  • 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

    0 讨论(0)
提交回复
热议问题