歡迎指教
對於很多沒有支援 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);
}
上面的閾值自己定義 自己驗證過是可以的
有什麼不對的地方 歡迎指教