亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

如何在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
罗山县| 普宁市| 新平| 松江区| 水城县| 泾阳县| 普洱| 罗平县| 泾源县| 乐至县| 湘潭市| 朝阳市| 沂南县| 德阳市| 灯塔市| 宜良县| 建平县| 炎陵县| 六枝特区| 卓尼县| 绥化市| 石河子市| 仪陇县| 班戈县| 田林县| 四川省| 资中县| 都江堰市| 海南省| 克什克腾旗| 塔河县| 宾川县| 漳州市| 海门市| 三门县| 霍州市| 元谋县| 土默特左旗| 麻阳| 海宁市| 扶风县|