第一篇文章 有点小激动 PHP 轮询方面的知识
欢迎指教
对于很多没有支持 websocket 的网站应用来说 写一些需要长轮询的应用时是一个很蛋疼的事情
例如 微信登录
微信登录需要一个长轮询去请求得到用户有没有扫描二维码
如果一直ajax 轮询请求 时间一长 浏览器就会变的很卡 可以考虑 休眠的方式来解决
下面是代码
$file_name = './test.txt'; // 此处建议使用 redis 或者其他的 缓存 尽量不使用数据库来扫描结果
for ( $i = 0; $i < 30; $i++ ) {
$text = file_get_contents($file_name); //演示 使用文件来存储扫描结果
if(!empty($text)){
file_put_contents($file_name, ''); //为了更好的演示 这里每次有结果之后 将文件写为空
exit(json_encode(['status' => 1, 'msg' => $text]));
}
if($i > 28){
exit(json_encode(['status' => 0, 'msg' => '继续下一轮长轮询!']));
}
usleep(2000000);
}
上面的阈值自己定义 自己验证过是可以的
有什么不对的地方 欢迎指教
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: