【发布时间】:2011-02-27 20:26:27
【问题描述】:
我需要创建一个类似于 facebook 聊天的聊天。
对于 Comet,我需要更多内存来保持连接。
使用 Ajax 轮询时,如果我每 3-4 秒发送一次请求,则会出现延迟问题。
所以...如果延迟(3-4 秒)无关紧要,Ajax 轮询是否更适合我的情况?
【问题讨论】:
-
我想你刚刚回答了你自己的问题 :)
标签: javascript ajax comet chat polling
我需要创建一个类似于 facebook 聊天的聊天。
对于 Comet,我需要更多内存来保持连接。
使用 Ajax 轮询时,如果我每 3-4 秒发送一次请求,则会出现延迟问题。
所以...如果延迟(3-4 秒)无关紧要,Ajax 轮询是否更适合我的情况?
【问题讨论】:
标签: javascript ajax comet chat polling
延迟不是唯一的问题。 COMET(长轮询)“节省”您的流量 - 当您使用轮询时,您无法知道服务器是否发生了变化,因此某些调用可能只是浪费流量和资源(例如,即使没有人聊天时,您每 3-4 秒打一次电话)。对于 COMET,您通常只需调用一次即可从服务器获取更新(命中率 100%)。
【讨论】:
@Vasil:“你可以保持数百万个打开的连接”
关于NIO over IO的the false superiority。
iobound 的文章只是显示 IO 优于 NIO 并且是的 IO 在 NIO 之前内存不足(顺便说一下,作者没有尝试以较低的值减少堆栈内存)。
【讨论】:
如果延迟不是问题,那么 AJAX 可能会更好。如果您不是非常非常小心,Comet 可能会遇到维护同一客户端/服务器对之间的多个连接的问题。 (Ref)
【讨论】: