我需要像Facebook聊天一样创建聊天。
使用Comet我需要更多内存来保持连接。
如果我每隔3-4秒发送一次请求,那么使用Ajax轮询会出现延迟问题。
所以...如果延迟(3-4秒)无关紧要,Ajax Polling对我的情况更好吗?
答案 0 :(得分:6)
延迟不是唯一的问题。 COMET(长轮询)“保存”您的流量 - 当您使用轮询时,您无法知道,如果服务器上有更改,那么一些呼叫可能只是浪费流量和资源(例如,即使没有人聊天,你每隔3-4秒拨打一次电话。在COMET的情况下,您通常只需要一次调用即可从服务器获取更新(命中率为100%)。
答案 1 :(得分:2)
@Vasil:“你可以保留数百万个已打开的连接”
关于IO的the false superiority和IO。
iobound文章只是显示IO优于NIO,是的,在NIO之前IO内存不足(顺便说一下,作者还没有尝试用较低的值来减少堆栈内存)。
答案 2 :(得分:1)
如果延迟不是问题,那么AJAX可能更好。如果您不是非常非常小心,Comet可能会遇到维护同一客户端/服务器对之间多个连接的问题。 (Ref)