Rumah >pembangunan bahagian belakang >tutorial php >Cara menggunakan PHP untuk tolakan sisi pelayan dan komunikasi masa nyata

Cara menggunakan PHP untuk tolakan sisi pelayan dan komunikasi masa nyata

王林
王林asal
2023-08-02 09:33:321605semak imbas

Cara menggunakan PHP untuk tolakan sisi pelayan dan komunikasi masa nyata

Dengan perkembangan berterusan teknologi dan populariti Internet, komunikasi masa nyata menjadi semakin penting dalam aplikasi web. Tolakan sisi pelayan dan komunikasi masa nyata membolehkan pembangun menghantar data dikemas kini masa nyata kepada dan berinteraksi dengan pelanggan tanpa memerlukan pelanggan meminta data secara aktif daripada pelayan.

Dalam pembangunan PHP, kami boleh menggunakan beberapa teknologi untuk mencapai tolakan sisi pelayan dan komunikasi masa nyata, seperti: WebSocket, Long Polling, Server-Sent Events, dsb. Artikel ini akan menumpukan pada menggunakan Peristiwa Dihantar Pelayan (SSE) untuk melaksanakan tolakan sisi pelayan dan komunikasi masa nyata.

Peristiwa Dihantar Pelayan (SSE) ialah teknologi komunikasi sehala antara penyemak imbas dan pelayan, yang boleh menolak data daripada pelayan ke klien dalam masa nyata. Teknologi SSE bergantung pada protokol HTTP dan tidak memerlukan penggunaan WebSocket.

Pertama, kita perlu mewujudkan perkhidmatan push pada pelayan PHP. Berikut ialah contoh kod PHP mudah:

<?php
header("Content-Type: text/event-stream");
header("Cache-Control: no-cache");
header("Connection: keep-alive");

// 循环向客户端推送数据
while(true) {
    // 从数据库或其他数据源获取数据
    $data = getData();

    // 将数据发送给客户端
    echo "data: " . json_encode($data) . "

";
    ob_flush();
    flush();

    // 休眠一段时间,控制数据推送速度
    sleep(1);
}

// 从数据库或其他数据源获取数据的方法
function getData() {
    // 这里可以根据业务需求查询数据库或者其他数据源
    $data = array(
        'message' => 'Hello, SSE!',
        'time' => time()
    );
    return $data;
}
?>

Dalam contoh di atas, mula-mula kami menetapkan pengepala respons untuk memberitahu penyemak imbas bahawa strim acara SSE dikembalikan. Kemudian, dalam gelung tak terhingga, kami mendapat data daripada pangkalan data atau sumber data lain, menukar data kepada format JSON dan menghantar data kepada klien menggunakan pernyataan echo. Ambil perhatian bahawa selepas setiap penghantaran data, kami memanggil fungsi ob_flush() dan flush() untuk memastikan data dihantar kepada klien. Akhir sekali, kami menggunakan fungsi sleep() untuk membuatkan pelayan tidur untuk satu tempoh masa untuk mengawal kelajuan tolak. echo语句将数据发送给客户端。注意,在每次发送数据后,我们调用ob_flush()flush()函数来确保数据被发送到客户端。最后,我们使用sleep()函数让服务器休眠一段时间,控制推送的速度。

接下来,在客户端使用JavaScript来接收服务器端推送的数据。下面是一个简单的HTML和JavaScript代码示例:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>SSE Demo</title>
</head>
<body>
    <div id="message"></div>

    <script>
    var eventSource = new EventSource("push.php");

    eventSource.onmessage = function(event) {
        var data = JSON.parse(event.data);
        document.getElementById("message").innerHTML = data.message;
    };
    </script>
</body>
</html>

在上面的示例中,我们使用EventSource对象来建立一个到服务器的连接,并指定要接收数据的URL。然后,我们通过监听onmessage

Seterusnya, gunakan JavaScript pada bahagian klien untuk menerima data yang ditolak oleh bahagian pelayan. Berikut ialah contoh kod HTML dan JavaScript yang mudah:

rrreee

Dalam contoh di atas, kami menggunakan objek EventSource untuk mewujudkan sambungan ke pelayan dan menentukan URL untuk menerima data. Kemudian, kami menerima data ditolak daripada pelayan dengan mendengar acara onmessage dan memaparkan data pada halaman.

Sudah tentu, ini hanya contoh mudah. Dalam pembangunan sebenar, kita boleh mengembangkan kod mengikut keperluan dan mengendalikan logik yang lebih kompleks. 🎜🎜Ringkasnya, menggunakan PHP untuk tolak sisi pelayan dan komunikasi masa nyata boleh membantu kami membina aplikasi web yang lebih kaya dan lebih masa nyata. Melalui teknologi Acara Dihantar Pelayan, kami boleh dengan mudah menolak data dikemas kini masa nyata kepada pelanggan dan berinteraksi dengan pelanggan pada masa yang sama. Saya harap artikel ini dapat membantu anda, terima kasih kerana membaca! 🎜

Atas ialah kandungan terperinci Cara menggunakan PHP untuk tolakan sisi pelayan dan komunikasi masa nyata. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn