我一直在學習長輪詢,並在閱讀了一些內容後,發現自己有點困惑。我看了解解釋here和here長輪詢混淆
我不太明白在響應之前讓服務器進入睡眠狀態的意義。我知道這個想法是試圖保持客戶端和服務器之間的連接,但是在第二個鏈接中有最高的優先php示例,它有一個代碼片段,服務器只是在一段時間內調用睡眠。
<?php
/* Send a string after a random number of seconds (2-10) */
sleep(rand(2,10));
echo("Hi! Have a random number: " . rand(1,10));
?>
睡眠究竟做了什麼?這不僅僅是爲了讓你每次發送請求時,它都會首先進入睡眠狀態(讓服務器什麼都不做),然後做出響應,使其完全像一個標準的http請求,但速度更慢?如果睡眠只是讓服務器在一段時間內不做任何事情,我看不出如何維持連接。每當接收到新信息時,是否需要長時間輪詢來回應客戶?
我明白了。但是在服務器上,如果您只是調用sleep(x),是否不會完全阻止服務器運行x時間? [鏈接](http://www.w3schools.com/php/func_misc_sleep.asp)。我們希望服務器線程進入睡眠狀態,同時檢索我們想要發送給客戶端的數據嗎? – user3125693