首頁 > 後端開發 > php教程 > 如何使用 Apache 和 JavaScript 實現基本的長輪詢?

如何使用 Apache 和 JavaScript 實現基本的長輪詢?

Linda Hamilton
發布: 2024-12-30 12:16:13
原創
900 人瀏覽過

How to Implement Basic Long Polling Using Apache and JavaScript?

實現基本的長輪詢實現

長輪詢是一種輪詢技術,可以長時間保持連接打開,以便在伺服器更新可用時實現即時響應。它的實作非常簡單。

Apache 作為請求處理程序

要使用 Apache 處理請求,請建立 PHP 腳本,例如 msgsrv.php。這是一個簡單的範例:

// Simulate data availability after a random delay
sleep(rand(2, 10));
echo("Hi! Here's a random number: " . rand(1, 10));
登入後複製

在 Apache 上執行此腳本。請注意,使用像 Apache 這樣的大容量網頁伺服器可能會導致工作執行緒耗盡。

使用JavaScript 腳本

在JavaScript 中,您可以使用像long_poller.htm 這樣的腳本來啟動輪詢請求:

<script>
  function waitForMsg() {
    $.ajax({
      type: "GET",
      url: "msgsrv.php",

      async: true,
      cache: false,
      timeout: 50000,

      success: function(data) {
        // Append the response to a div
        addmsg("new", data);
        // Continue polling after 1 second
        setTimeout(waitForMsg, 1000);
      },
      error: function(..., errorThrown) {
        // Append error to div
        addmsg("error", textStatus + " (" + errorThrown + ")");
        // Retry after 15 seconds
        setTimeout(waitForMsg, 15000);
      }
    });
  }

  $(document).ready(function() {
    waitForMsg(); // Start the initial request
  });
</script>
登入後複製

該腳本不斷向msgsrv. php 發出請求,並在div 中顯示回應。它使用簡單的速率限制器來防止過多的請求。

長輪詢的好處

長輪詢提供彈性和簡單性。如果網路中斷,客戶端會自動重試。對於需要從伺服器立即更新的應用程式來說,它是一個合適的選擇,例如即時訊息或聊天應用程式。

以上是如何使用 Apache 和 JavaScript 實現基本的長輪詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板