【发布时间】:2012-11-21 14:41:26
【问题描述】:
我目前正在 Codeigniter 中实现长轮询功能,但遇到了问题。
假设我有一个普通的 PHP 控制器:
function longpolling()
{
//PHP Timelimit infinite
set_time_limit(0);
while(true){
echo "test";
//Sleep 3 Seconds
sleep(3);
}
}
页面只是在调用时表示正在加载,并且不返回“test”,而是在一段时间后得到 404 错误。
我做错了什么?
谢谢!
【问题讨论】:
-
我刚刚检查了error.log
2012/11/21 17:52:04 [error] 28833#0: *45 upstream timed out (110: Connection timed out) while reading response header from upstream, client: XXX, server: _, request: "GET /index.php/notification/longpolling HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "XXX" 2012/11/21 17:52:04 [error] 28833#0: *45 open() "/usr/share/nginx/html/50x.html" failed (2: No such file or directory), client: XXX, server: _, request: "GET /index.php/notification/longpolling HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "XXX" -
您必须最终结束响应。查看以下帖子:Simple “Long Polling” example code?.
-
使用 die() 可以防止任何进一步的回显输出
标签: php javascript html codeigniter long-polling