中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

如何在PHP中實現event-stream

PHP
小樊
137
2024-09-05 02:33:16
欄目: 編程語言

在 PHP 中實現 event-stream,可以使用 Server-Sent Events (SSE)

  1. 創建一個 PHP 文件(例如:sse.php),并設置正確的頭信息以啟動 event-stream:
<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
header('Connection: keep-alive');
header('X-Accel-Buffering: no'); // 對于 Nginx 服務器

// 生成事件數據
function send_message($id, $data, $event = '') {
    echo "id: $id" . PHP_EOL;
    if ($event != '') {
        echo "event: $event" . PHP_EOL;
    }
    echo "data: $data" . PHP_EOL;
    echo PHP_EOL;

    ob_flush();
    flush();
}

$serverTime = time();
send_message($serverTime, 'Hello, this is a message from the server!');

// 模擬事件流
for ($i = 0; $i < 10; $i++) {
    sleep(1);
    $serverTime = time();
    send_message($serverTime, 'This is message ' . ($i + 1));
}
  1. 在 HTML 文件中,創建一個 EventSource 對象來連接到上面創建的 PHP 腳本:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
   <title>Event Stream Example</title>
</head>
<body>
    <ul id="event-log"></ul>

   <script>
        const eventSource = new EventSource('sse.php');

        eventSource.onmessage = function (event) {
            const data = JSON.parse(event.data);
            const listItem = document.createElement('li');
            listItem.textContent = `Message ID: ${data.id}, Message: ${data.message}`;
            document.getElementById('event-log').appendChild(listItem);
        };

        eventSource.onerror = function (error) {
            console.error('Error occurred:', error);
        };
    </script>
</body>
</html>
  1. 將這兩個文件放在 Web 服務器上,并通過瀏覽器訪問 HTML 文件。你應該能看到來自 PHP 腳本的事件消息。

注意:確保您的 Web 服務器支持 PHP,并已正確配置。同時,確保在 JavaScript 代碼中使用正確的路徑來引用 PHP 文件。

0
莱州市| 长治市| 宁城县| 阜新市| 施甸县| 福安市| 宿松县| 扬州市| 永泰县| 务川| 蕲春县| 友谊县| 汉源县| 正阳县| 视频| 安顺市| 娱乐| 二连浩特市| 南宁市| 碌曲县| 徐汇区| 焦作市| 阿坝县| 汕头市| 南川市| 安化县| 叶城县| 托克逊县| 广河县| 丰台区| 托里县| 时尚| 榕江县| 开平市| 盘锦市| 吉隆县| 乐昌市| 松江区| 临沧市| 汾阳市| 邵东县|