實現基本長輪詢:簡單指南
長輪詢是一種技術,用於使伺服器能夠將資料推送到客戶端,而無需客戶明確請求它。這在伺服器需要持續監控資料並在新資料到達時通知客戶端的場景非常有用。
長輪詢如何運作?
在長輪詢中,客戶端向伺服器發出請求並等待回應。如果沒有可用數據,伺服器將無限期地保持請求打開,而不是像常規 HTTP 請求那樣關閉它。當有新資料可用時,伺服器將其發送到客戶端並關閉請求。
在Apache 和PHP 實現長輪詢
使用Apache 和PHP 實現長輪詢PHP:
客戶端實作使用Javascript
要使用Javascript 在客戶端實作長輪詢:範例程式碼
PHP 腳本(msgsrv.php):
if (rand(1, 3) == 1) { // Fake an error header("HTTP/1.0 404 Not Found"); die(); } // Send a string after a random number of seconds (2-10) sleep(rand(2, 10)); echo("Hi! Have a random number: " . rand(1, 10));
Java代碼(long_poller.htm):
<script type="text/javascript"> function waitForMsg() { $.ajax({ type: "GET", url: "msgsrv.php", async: true, cache: false, timeout: 50000, success: function (data) { // Add response to a .msg div (with the "new" class) addmsg("new", data); setTimeout(waitForMsg, 1000); // Request next message after 1 second }, error: function (XMLHttpRequest, textStatus, errorThrown) { // Add error message addmsg("error", textStatus + " (" + errorThrown + ")"); setTimeout(waitForMsg, 15000); // Retry after 15 seconds } }); }; $(document).ready(function () { waitForMsg(); // Start the initial request }); </script>
以上是長輪詢如何運作以及如何使用 Apache、PHP 和 Javascript 來實現?的詳細內容。更多資訊請關注PHP中文網其他相關文章!