Rumah > pembangunan bahagian belakang > tutorial php > Gunakan php untuk membangunkan Websocket dan mencipta sistem tolak mesej masa nyata

Gunakan php untuk membangunkan Websocket dan mencipta sistem tolak mesej masa nyata

PHPz
Lepaskan: 2023-12-02 09:20:01
asal
718 orang telah melayarinya

Gunakan php untuk membangunkan Websocket dan mencipta sistem tolak mesej masa nyata

Gunakan PHP untuk membangunkan WebSocket dan mencipta sistem push mesej masa nyata

  1. Pengenalan
    Dengan peningkatan dalam keperluan komunikasi masa nyata, sistem push mesej masa nyata berdasarkan WebSocket menjadi semakin popular di Web pembangunan. Artikel ini akan memperkenalkan cara menggunakan PHP untuk membangunkan aplikasi WebSocket mudah untuk melaksanakan fungsi tolak mesej masa nyata.
  2. Apakah itu WebSocket?
    WebSocket ialah protokol untuk dupleks penuh, komunikasi dua hala melalui satu sambungan TCP. Berbanding dengan protokol HTTP tradisional, WebSocket boleh menyediakan penghantaran data masa nyata yang lebih pantas dan sesuai untuk senario yang memerlukan tolakan mesej masa nyata.
  3. Persediaan persekitaran pembangunan
    Sebelum kita mula, kita perlu menyediakan alatan dan persekitaran berikut:
  4. PHP 7.0+: Artikel ini menggunakan PHP sebagai bahasa sebelah pelayan dan perlu menggunakan sambungan WebSocket PHP.
  5. Apache atau Nginx: Sebagai pelayan web, digunakan untuk mewujudkan sambungan WebSocket antara pelanggan dan pelayan.
  6. Pelanggan WebSocket: Ia boleh menjadi mana-mana pelayar atau alat penyahpepijatan yang menyokong WebSocket.
  7. Contoh kod sisi pelayan
    Pertama, kita perlu mencipta contoh pelayan WebSocket di bahagian pelayan dan mendengar port yang ditentukan.
// 创建WebSocket服务器实例,监听指定端口
$server = new SwooleWebSocketServer('0.0.0.0', 9501);

// 监听WebSocket连接打开事件
$server->on('open', function (SwooleWebSocketServer $server, SwooleHttpRequest $request) {
    echo "WebSocket连接打开
";
});

// 监听WebSocket消息事件
$server->on('message', function (SwooleWebSocketServer $server, SwooleWebSocketFrame $frame) {
    echo "收到消息:{$frame->data}
";
    // 推送消息给所有连接的客户端
    $server->push($frame->fd, "服务器收到消息:{$frame->data}");
});

// 监听WebSocket连接关闭事件
$server->on('close', function (SwooleWebSocketServer $server, int $fd) {
    echo "WebSocket连接关闭
";
});

// 启动WebSocket服务器
$server->start();
Salin selepas log masuk

Kod di atas menggunakan sambungan Swoole untuk mencipta contoh pelayan WebSocket dan mendengar port 9501. Setiap kali pelanggan menyambung, menghantar mesej atau menutup sambungan, pengendali acara yang sepadan akan dicetuskan.

  1. Contoh kod pelanggan
    Seterusnya, kita perlu mewujudkan sambungan WebSocket pada bahagian pelanggan untuk mencapai komunikasi masa nyata dengan pelayan.
<!DOCTYPE html>
<html>
<head>
    <title>WebSocket示例</title>
</head>
<body>
    <script type="text/javascript">
        // 创建WebSocket对象,与服务器建立连接
        var ws = new WebSocket('ws://localhost:9501');

        // 监听WebSocket连接打开事件
        ws.onopen = function () {
            console.log('WebSocket连接已打开');
        };

        // 监听WebSocket消息事件
        ws.onmessage = function (event) {
            console.log('收到消息:' + event.data);
        };

        // 监听WebSocket连接关闭事件
        ws.onclose = function () {
            console.log('WebSocket连接已关闭');
        };

        // 发送消息
        function sendMessage() {
            var message = document.getElementById('message').value;
            ws.send(message);
        }
    </script>

    <input type="text" id="message" placeholder="输入消息" />
    <button onclick="sendMessage()">发送消息</button>
</body>
</html>
Salin selepas log masuk

Kod di atas menggunakan JavaScript pada bahagian pelayar untuk mencipta objek WebSocket dan mewujudkan sambungan dengan pelayan. Dengan mendengar acara WebSocket, fungsi seperti menerima mesej, menghantar mesej dan menangkap penutupan sambungan boleh dilaksanakan.

  1. Jalankan dan Uji
    Jalankan kod sebelah pelayan dalam tetingkap baris arahan untuk memulakan pelayan WebSocket. Kemudian, buka halaman klien melalui penyemak imbas dan wujudkan sambungan WebSocket.

Kini, anda boleh memasukkan mesej pada halaman pelanggan dan menghantarnya, dan pelayan akan menerima dan membalas mesej yang sepadan. Pada masa yang sama, mesej yang diterima akan dipaparkan pada halaman klien.

  1. Ringkasan
    Melalui pengenalan artikel ini, anda boleh belajar cara menggunakan PHP untuk membangunkan aplikasi WebSocket mudah untuk melaksanakan fungsi tolak mesej masa nyata. Sudah tentu, kod di atas hanyalah contoh asas, dan anda boleh mengembangkan dan mengoptimumkannya mengikut keperluan sebenar.

Keupayaan komunikasi masa nyata WebSocket memberikan lebih banyak kemungkinan untuk pembangunan web, terutamanya sesuai untuk senario seperti aplikasi sembang, pemantauan masa nyata dan pemberitahuan. Saya percaya artikel ini boleh membantu anda memulakan pembangunan WebSocket dan memberi inspirasi kepada lebih banyak kreativiti dan idea.

Atas ialah kandungan terperinci Gunakan php untuk membangunkan Websocket dan mencipta sistem tolak mesej masa nyata. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan