作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我一辈子都弄不明白像 Cometd 或 simple-comet 这样的应用程序的目的是什么,而不是像使用 php 的简单长轮询请求和使用这样的代码的无限循环
$time = time();
while(time() - $time < 30) {
if ($query) {
$shapes = ...;
echo json_encode($shapes);
break;
}
usleep(25000);
}
在专为多个请求设计的网络服务器上运行,例如 lighttpd 或 NGIX。
也许我只是怀念对 cometd 服务文档的理解。我知道上面是一个“Comet”请求,但为什么会存在像 cometd 这样的东西,它们在哪些方面做得更好。
最佳答案
Cometd 和 orbitd 等类似软件非常适合分解区域的责任。我可以让我的 lighttpd 支持的 python 服务专注于做更多涉及的工作,而 comet 服务绑定(bind)到消息队列以处理轻消息通知(例如批处理请求完成,你有一条新消息等),而 lighttpd 服务器处理数据库请求或处理 POST/PUT/DELETE 请求。
最后一点,Apache 仍然是一个非常流行的网络服务器,但如果它试图保持一千个或更多的连接打开,它就会在荣耀的火焰中死去。对于具有一系列想要添加 comet 支持的 apache 服务器的平台,使用开箱即用的解决方案比使用 lighttpd 或 nginx 滚动解决方案更有意义。
关于php - Comet 软件相对于标准长轮询的优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5808643/
我是一名优秀的程序员,十分优秀!