Rumah rangka kerja php Workerman Aplikasi praktikal Workerman: mewujudkan bilik sembang dalam talian berprestasi tinggi

Aplikasi praktikal Workerman: mewujudkan bilik sembang dalam talian berprestasi tinggi

Aug 06, 2023 pm 12:29 PM
workerman Aplikasi praktikal Bilik sembang dalam talian berprestasi tinggi

Aplikasi praktikal pekerja: Cipta bilik sembang dalam talian berprestasi tinggi

Pengenalan:
Dalam era Internet hari ini, sembang dalam talian masa nyata telah menjadi bahagian yang amat diperlukan dalam kehidupan orang ramai. Untuk memenuhi keperluan pengguna untuk interaksi masa nyata berprestasi tinggi, menjadi penting untuk memilih rangka kerja komunikasi yang sesuai. Sebagai rangka kerja komunikasi rangkaian tak segerak PHP berprestasi tinggi, Workerman boleh memenuhi permintaan ini. Artikel ini akan memperkenalkan cara menggunakan Workerman untuk membina bilik sembang dalam talian berprestasi tinggi dan memberikan contoh kod.

1. Persediaan persekitaran
Sebelum anda mula, pastikan persekitaran anda memenuhi syarat berikut:

  1. Versi PHP hendaklah tidak kurang daripada 5.3, dan sambungan pcntl dan posix perlu dipasang.
  2. Pasang Komposer, yang digunakan untuk memasang Workerman dan fail perpustakaan bergantungnya.

2. Cipta pelayan bilik sembang
Pertama, kita perlu buat pelayan bilik sembang. Buat fail bernama "chat_server.php" dan tambah kod berikut:

<?php
require_once __DIR__ . '/vendor/autoload.php';

use WorkermanWorker;

$ws_worker = new Worker("websocket://0.0.0.0:8000");

$ws_worker->count = 4; // 设置启动4个进程

$ws_worker->onConnect = function ($connection) {
    echo "有新用户连接
";
};

$ws_worker->onMessage = function ($connection, $data) use ($ws_worker) {
    foreach ($ws_worker->connections as $clientConnection) {
        $clientConnection->send($data); // 将收到的消息发送给所有连接的客户端
    }
};

$ws_worker->onClose = function ($connection) {
    echo "有用户断开连接
";
};

Worker::runAll();
Salin selepas log masuk

Dengan kod di atas, kami mencipta pelayan WebSocket dan mendengar port 8000. Apabila pengguna baharu menyambung, "Pengguna baharu menyambung" dikeluarkan ke latar belakang Apabila pengguna memutuskan sambungan, "Pengguna memutuskan sambungan" dikeluarkan ke latar belakang. Dalam fungsi panggil balik onMessage, kami menghantar mesej yang diterima kepada semua pelanggan yang disambungkan.

3 Buat pelanggan bilik sembang
Seterusnya, kita perlu mencipta pelanggan bilik sembang yang mudah. Cipta fail bernama "chat_client.html" dan tambahkan kod berikut:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>在线聊天室</title>
    <style>
        #message {
            height: 500px;
            border: 1px solid #ccc;
            padding: 10px;
            overflow-y: scroll;
        }

        #message p {
            margin: 5px 0;
        }

        #input {
            margin-top: 10px;
        }
    </style>
</head>
<body>
<div id="message"></div>
<input type="text" id="input" placeholder="请输入消息">
<button onclick="send()">发送</button>

<script>
    var ws = new WebSocket("ws://localhost:8000");

    ws.onopen = function () {
        console.log("连接成功");
    };

    ws.onmessage = function (evt) {
        var message = document.getElementById("message");
        message.innerHTML += "<p>" + evt.data + "</p>";
        message.scrollTop = message.scrollHeight; // 滚动到底部
    };

    ws.onclose = function () {
        console.log("连接关闭");
    };

    function send() {
        var input = document.getElementById("input");
        var message = input.value;
        ws.send(message);
        input.value = "";
    }
</script>
</body>
</html>
Salin selepas log masuk

Dengan kod di atas, kami telah mencipta antara muka pelanggan bilik sembang yang mudah. Apabila pengguna memasukkan mesej dan mengklik butang hantar, mesej itu dihantar ke pelayan. Apabila pelayan menerima mesej, mesej dipaparkan dalam kawasan mesej dalam fungsi panggil balik onmessage dan secara automatik menatal ke bawah.

4. Uji bilik sembang
Lakukan arahan berikut dalam baris arahan untuk memulakan pelayan:

php chat_server.php start
Salin selepas log masuk

Kemudian, buka dua atau lebih tetingkap pelayar dan akses fail "chat_client.html" masing-masing. Masukkan mesej dalam kotak input tetingkap penyemak imbas yang berbeza, klik butang hantar, dan anda akan melihat mesej yang sama dalam semua tetingkap. Dengan cara ini kami berjaya mencipta bilik sembang dalam talian berprestasi tinggi.

Ringkasan:
Artikel ini memperkenalkan cara menggunakan Workerman untuk membina bilik sembang dalam talian berprestasi tinggi dan menyediakan contoh kod yang sepadan. Dengan menggunakan Workerman, kami boleh melaksanakan fungsi sembang masa nyata berkonkurensi tinggi dan kependaman rendah dengan mudah. Saya harap artikel ini akan membantu aplikasi praktikal Workerman.

Atas ialah kandungan terperinci Aplikasi praktikal Workerman: mewujudkan bilik sembang dalam talian berprestasi tinggi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Laksanakan muat naik dan muat turun fail dalam dokumen Workerman Laksanakan muat naik dan muat turun fail dalam dokumen Workerman Nov 08, 2023 pm 06:02 PM

Laksanakan muat naik dan muat turun fail dalam dokumen Workerman

Mana satu lebih baik, swool atau pekerja? Mana satu lebih baik, swool atau pekerja? Apr 09, 2024 pm 07:00 PM

Mana satu lebih baik, swool atau pekerja?

Pembangunan pekerja: Cara melaksanakan panggilan video masa nyata berdasarkan protokol UDP Pembangunan pekerja: Cara melaksanakan panggilan video masa nyata berdasarkan protokol UDP Nov 08, 2023 am 08:03 AM

Pembangunan pekerja: Cara melaksanakan panggilan video masa nyata berdasarkan protokol UDP

Bagaimana untuk melaksanakan penggunaan asas dokumen Workerman Bagaimana untuk melaksanakan penggunaan asas dokumen Workerman Nov 08, 2023 am 11:46 AM

Bagaimana untuk melaksanakan penggunaan asas dokumen Workerman

Cara melaksanakan fungsi proksi terbalik dalam dokumen Workerman Cara melaksanakan fungsi proksi terbalik dalam dokumen Workerman Nov 08, 2023 pm 03:46 PM

Cara melaksanakan fungsi proksi terbalik dalam dokumen Workerman

Bagaimana untuk melaksanakan fungsi pemasa dalam dokumen Workerman Bagaimana untuk melaksanakan fungsi pemasa dalam dokumen Workerman Nov 08, 2023 pm 05:06 PM

Bagaimana untuk melaksanakan fungsi pemasa dalam dokumen Workerman

Cara melaksanakan komunikasi TCP/UDP dalam dokumentasi Workerman Cara melaksanakan komunikasi TCP/UDP dalam dokumentasi Workerman Nov 08, 2023 am 09:17 AM

Cara melaksanakan komunikasi TCP/UDP dalam dokumentasi Workerman

Kaedah pelaksanaan pengimbangan beban dalam dokumentasi Workerman Kaedah pelaksanaan pengimbangan beban dalam dokumentasi Workerman Nov 08, 2023 pm 09:20 PM

Kaedah pelaksanaan pengimbangan beban dalam dokumentasi Workerman

See all articles