采取长轮询请求,如果服务器在一段时间后没有响应,则返回一个令人不快的错误(使用nginx时为405)。如何在几秒后使用PHP使请求失效?你推荐多少秒?提前谢谢你。
答案 0 :(得分: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:您实际上是否将数据流式化?或者流保持空白直到连接终止?