我需要创建一个像facebook聊天聊天。
使用Comet时,我需要更多的内存来保持连接。
使用Ajax轮询,如果我每3-4秒发送一次请求,就会出现延迟问题。
所以..。如果延迟( 3-4秒)无关紧要,那么Ajax轮询是否更适合我的情况?
发布于 2010-06-07 20:29:44
延迟不是唯一的问题。COMET (长轮询)“节省”了你的流量--当你使用轮询时,你不能知道服务器上是否有变化,所以一些调用可能只是在浪费流量和资源(例如,即使没有人在聊天,你也是每3-4秒进行一次调用)。在COMET的情况下,您通常只需要一个调用即可从服务器获取更新(命中率为100% )。
发布于 2011-01-17 22:52:09
@Vasil:“您可以保持数百万个打开的连接”
以及关于NIO对IO的the false superiority。
这篇iobound文章只是展示了IO优于NIO,是的,IO在NIO之前就耗尽了内存(顺便说一句,作者并没有试图用更低的值来减少堆栈内存)。
发布于 2010-06-04 23:06:17
如果延迟不是问题,那么AJAX可能更好。如果您不非常非常小心,Comet可能会在维护同一客户端/服务器对之间的多个连接时遇到问题。(Ref)
https://stackoverflow.com/questions/2975290
复制相似问题