91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

如何在PHP中實現長輪詢

PHP
小樊
87
2024-09-12 16:01:07
欄目: 編程語言

長輪詢(Long Polling)是一種服務器推送技術,允許服務器在有新數據可用時主動推送給客戶端

  1. 創建一個PHP文件,例如long_polling.php,并設置一個適當的超時時間:
<?php
// 設置腳本超時時間(單位:秒)
ini_set('max_execution_time', 30);
  1. 定義一個函數來獲取新數據。這里我們使用一個簡單的示例,從文本文件中讀取數據:
function getNewData() {
    // 從文件中讀取數據
    $data = file_get_contents('data.txt');
    
    // 返回數據
    return $data;
}
  1. 使用一個循環來等待新數據。在循環中,我們將檢查是否有新數據可用。如果沒有新數據,我們將繼續等待。如果有新數據,我們將將其發送回客戶端并退出循環。
$data = null;
while (true) {
    // 獲取新數據
    $newData = getNewData();
    
    // 檢查是否有新數據
    if ($newData !== $data) {
        // 更新數據
        $data = $newData;
        
        // 將新數據發送回客戶端
        echo $data;
        break;
    } else {
        // 沒有新數據,等待一段時間后再次嘗試
        sleep(1);
    }
}
  1. 在HTML文件中,使用JavaScript創建一個XMLHttpRequest對象來請求long_polling.php
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
   <title>Long Polling Example</title>
   <script>
        function longPolling() {
            var xhr = new XMLHttpRequest();
            xhr.onreadystatechange = function() {
                if (xhr.readyState == 4 && xhr.status == 200) {
                    // 處理服務器返回的數據
                    console.log("Received data: " + xhr.responseText);
                    
                    // 繼續進行長輪詢
                    longPolling();
                }
            };
            xhr.open("GET", "long_polling.php", true);
            xhr.send();
        }
        
        // 開始長輪詢
        window.onload = longPolling;
    </script>
</head>
<body>
    <h1>Long Polling Example</h1>
</body>
</html>

現在,當有新數據可用時,服務器將主動推送給客戶端。客戶端將持續請求新數據,直到服務器關閉連接或發生錯誤。

0
工布江达县| 文昌市| 汕尾市| 遵义县| 定边县| 邵东县| 合山市| 永仁县| 乌海市| 昌都县| 理塘县| 新沂市| 区。| 奉节县| 宜丰县| 库车县| 海阳市| 安宁市| 根河市| 长春市| 淮北市| 昭平县| 自贡市| 岑巩县| 贵南县| 泸西县| 祁东县| 古丈县| 永嘉县| 玉环县| 平泉县| 门源| 巴林左旗| 长海县| 乌什县| 平江县| 上虞市| 出国| 张家界市| 平湖市| 武隆县|