Comet VS Ajax polling
Asked Answered
G

3

8

I need to create a chat like facebook chat.

With Comet I need more memory to keep the connection.

With Ajax polling there is a latency problem if I send request every 3-4 seconds.

So... If the latency ( 3-4 seconds ) doesn't matter, Is Ajax Polling better for my case ?

Glockenspiel answered 4/6, 2010 at 14:58 Comment(1)
I think you just answered your own question there :)Triplex
C
6

Latency is not the only problem. COMET (long-polling) "saves" your traffic - when you use polling, you cannot know, if there were changes on the server, so some of the calls may be just a waste of traffic and resources (e.g., even if no one's chatting, you're making calls every 3-4 seconds). In case of COMET, you generally need one just call to get an update from the server (with 100% hit rate).

Clifford answered 7/6, 2010 at 12:29 Comment(3)
but with Comet, I need more memory to keep open the connections... no ?Glockenspiel
Keeping a connection itself is not so harmful. Memory consumption more depends on what server-side IO API you will chosee - blocking or non-blocking. If you choose the blocking API, you will have a thread per connection -> memory problems with 3-4k open connections. If you choose non-blocking API (almost every application server has NIO capabilities), you can keep millions of opened connection.Clifford
with comet you do not need much more memory if you are doing non blocking ioChiapas
B
2

@Vasil: "you can keep millions of opened connection"

Take a look to this problem

And regarding the false superiority of NIO over IO.

The iobound article just shows IO outperforms NIO and yes IO goes out of memory before NIO (by the way, the author has not tried to reduce the stack memory with a lower value).

Behistun answered 17/1, 2011 at 14:52 Comment(0)
C
1

If latency isn't an issue then AJAX is probably better. Comet can encounter problems maintaining multiple connections between the same client/server pair if you're not very, very careful. (Ref)

Cockatoo answered 4/6, 2010 at 15:6 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.