首頁 > 後端開發 > php教程 > 如何使用 Apache 和 PHP 實作簡單的長輪詢?

如何使用 Apache 和 PHP 實作簡單的長輪詢?

Patricia Arquette
發布: 2024-12-31 02:16:09
原創
386 人瀏覽過

How to Implement Simple Long Polling Using Apache and PHP?

實作簡單的長輪詢

許多資源描述了長輪詢的概念,但實際的實作範例仍然難以捉摸。讓我們深入研究一個簡化版本,不依賴複雜的框架或伺服器配置。

使用 Apache 和 PHP 進行伺服器通訊

要處理伺服器請求,Apache 就夠了。下面的 PHP 腳本在隨機間隔後發送一個隨機字串,模擬即時訊息到達。有時,出於演示目的,它會傳回錯誤。

<?php
if (rand(1, 3) == 1) {
    header("HTTP/1.0 404 Not Found");
    die();
}
sleep(rand(2, 10));
echo("Hi! Have a random number: " . rand(1, 10));
?>
登入後複製

用於長輪詢的JavaScript 用戶端

在JavaScript 中,長輪詢器不斷要求上述腳本並等待回應:

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

        success: function(data) {
            // Display the message
            $("#messages").append("<div class='msg new'>" + data + "</div>");

            // Recursively invoke waitForMsg
            setTimeout(waitForMsg, 1000);
        },
        error: function() {
            // Display the error message and restart the process after 15 seconds
            $("#messages").append("<div class='msg error'>Error encountered</div>");
            setTimeout(waitForMsg, 15000);
        }
    });
}

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

此腳本不斷檢查伺服器更新並顯示傳入訊息。合併了錯誤處理,長輪詢器會在指定的逾時時間後嘗試重新連線。

長輪詢的優點

長輪詢有幾個好處:

  • 彈性:在有網路連線的情況下
  • 可擴充性:獨立伺服器可以同時處理多個長輪詢請求,而不影響網站效能。
  • 簡單性: 伺服器端和客戶端的程式碼都很簡單且易於實作。

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

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