采用长轮询请求,如果服务器在一段时间后没有响应,则会返回一个令人不快的错误(nginx 为 405)。如何在几秒钟后使 PHP 请求过期?你推荐几秒?提前谢谢你。
问问题
271 次
1 回答
1
好的,这就是我的做法,我已经为我的一个业余时间项目构建了一个类似的脚本,而不是做一个完整的无限循环,我会做一个循环数量有限的循环,并在中间休眠节省大量的 cpu 使用,可能不完全是您的代码的设计方式,但它很好,并且它以正常的 200 代码优雅地停止,当然您可以更改循环计数器和睡眠值以适合您的代码。
<?php
header('Cache-Control: no-cache');
header("Content-Type: text/event-stream");
$i = 60;
while($i--){
echo "data: ".date("Y-m-d H:i:s")."\n\n";
echo "\n\n";
ob_flush();
flush();
sleep(1);
}
然后让javascript重新连接并开始一个新的循环。
PS:你真的让你的数据流式传输吗?或者在连接终止之前流是否保持空白?
于 2013-09-21T21:41:23.160 回答