【发布时间】:2012-06-26 00:56:33
【问题描述】:
我处于研究新技术的位置,所以听说了一些关于 Long polling,node.js 的事情。
我需要创建一个使用long polling 的网络应用程序。
在这个项目的每个页面上我需要使用轮询,实际上它通过 POP 检查是否有新的电子邮件。
所以我认为我需要做以下事情
- 向服务器调用 ajax 请求
- 服务器收到请求并检查是否有新的电子邮件
- 如果有新的邮件服务器响应其详细信息
- 如果没有新的电子邮件服务器在某个时候开始休眠并再次检查,直到收到一封新电子邮件。
像这样的
$(document).ready(function(){
is_there_new_mail();
function is_there_new_mail()
{
$.get(url,function(data){
if(data ==true)
{
//do some actions and call again
is_there_new_mail();
}
});
}
});
在服务器中是这样的
function check_mail()
{
//processing and checking is there a new mail on inbox
return $is_mail = $this->_new_mail()?true:false;
}
function receiver()
{
if($check_mail())
{
//send to client..
}
else
{
//sleep sometime and call mail function
}
}
我听说这样做会在服务器上打开许多连接,如果我们使用 node.js,我们可以在一个连接中管理它。
我正在使用 Codeigniter,并且对 node.js 非常陌生。
如何使用 codeigniter 实现 node.js,或者您能否建议我更多关于此场景的信息。
【问题讨论】:
-
随着您对解决方案的解释,它将为需要长轮询的每个用户打开一个新连接。真的没有更好的选择,你不能有一个单一的连接来处理所有传入的客户端连接。
-
我的理解是每个请求都会在 apache 上创建一个新进程......我该如何摆脱这个? [对不起,我只是在研究这个,信息可能不正确]
标签: php jquery codeigniter node.js long-polling