首頁 > 後端開發 > php教程 > 長輪詢在 Web 應用程式中如何運作?

長輪詢在 Web 應用程式中如何運作?

Susan Sarandon
發布: 2024-12-28 15:09:17
原創
240 人瀏覽過

How Does Long Polling Work in Web Applications?

理解和實現長輪詢

長輪詢是Web 應用程式中使用的一種輪詢技術,使伺服器能夠向客戶端發送數據,而無需等待明確請求。實現長輪詢涉及在客戶端和伺服器之間建立持久連線。

用於長輪詢的 Apache 設定

要為長輪詢請求提供服務,請將 Apache 設定為處理具有較長逾時的請求。這可以透過在 Apache 配置中設定 KeepAliveTimeout 和 MaxKeepAliveRequests 指令來實現。

用於長輪詢的PHP 腳本

實現長輪詢的簡單PHP 腳本可以編寫如下:

<?php
while (true) {
    // Sleep for a random duration to simulate data availability
    sleep(rand(2, 10));

    // Generate a random string to represent new data
    $data = "Message: " . rand(1, 10);

    // Send the data to the client
    echo $data;
    flush();
}
?>
登入後複製

用於長輪詢的JavaScript

在客戶端,您可以使用JavaScript 建立與PHP 腳本的持久連接並處理傳入的資料。這可以使用以下 jQuery 程式碼來實現:

$(function() {
    function waitForMsg() {
        $.ajax({
            url: "msgsrv.php",
            async: true,
            timeout: 50000,
            success: function(data) {
                // Append the received data to a DOM element
                $("#messages").append("<div>" + data + "</div>");

                // Recursively call the waitForMsg function to continue polling
                waitForMsg();
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                // Handle the error and try again after a delay
                waitForMsg();
            }
        });
    }
    waitForMsg();
});
登入後複製

注意

此範例提供了長輪詢的基本實作以用於簡報目的。為了實現健全且可擴展的實現,請考慮使用 Node.js 或 Spring Boot 等框架。

以上是長輪詢在 Web 應用程式中如何運作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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