Rumah  >  Artikel  >  rangka kerja php  >  Perkongsian contoh pembangunan pekerja: mencapai sistem sembang kestabilan tinggi

Perkongsian contoh pembangunan pekerja: mencapai sistem sembang kestabilan tinggi

WBOY
WBOYasal
2023-08-05 13:45:201332semak imbas

Perkongsian contoh pembangunan pekerja: mencapai sistem sembang kestabilan tinggi

Pengenalan:
Dengan perkembangan pesat Internet, sistem sembang telah menjadi bahagian yang amat diperlukan dalam kehidupan seharian manusia. Melaksanakan sistem sembang yang stabil dan boleh dipercayai adalah impian setiap pembangun. Artikel ini akan membangunkan sistem sembang yang sangat stabil menggunakan rangka kerja Workerman dan memberikan contoh kod. Workerman ialah rangka kerja soket tak segerak berprestasi tinggi untuk PHP dengan keupayaan pemprosesan serentak yang sangat baik dan kestabilan.

1. Pasang Workerman

Sebelum mula menggunakan Workerman, kita perlu memastikan persekitaran PHP telah dipasang. Pertama, kita perlu melaksanakan arahan berikut dalam terminal untuk memasang Workerman:

composer require workerman/workerman

2. Buat pelayan dan klien

  1. Server

Buat fail bernama server.php dan tambah kod berikut:

<?php
require_once __DIR__ . '/vendor/autoload.php'; // 引入Workerman库

use WorkermanWorker;

$server = new Worker("websocket://0.0.0.0:8000"); // 监听8000端口

$server->onConnect = function ($connection) {
    echo "New Connection
";
};

$server->onMessage = function ($connection, $message) {
    foreach ($connection->worker->connections as $clientConnection) {
        $clientConnection->send($message); // 将消息发送给所有客户端
    }
};

Worker::runAll();

Di atas kod mencipta pelayan WebSocket dan mendengar port tempatan 8000. Apabila sambungan baharu diwujudkan, "Sambungan Baharu" akan dikeluarkan. Apabila mesej dihantar ke pelayan, pelayan menghantar mesej kepada semua pelanggan yang disambungkan.

  1. Client

Buat fail bernama client.html dan tambah kod berikut:

<!DOCTYPE html>
<html>
<head>
    <script>
        var socket = new WebSocket("ws://localhost:8000");

        socket.onopen = function () {
            console.log("Connected");
        };

        socket.onmessage = function (event) {
            console.log("Message received: " + event.data);
        };

        socket.onclose = function () {
            console.log("Connection closed");
        };

        function sendMessage() {
            var message = document.getElementById("message").value;
            socket.send(message);
        }
    </script>
</head>
<body>
    <input type="text" id="message">
    <button onclick="sendMessage()">Send</button>
</body>
</html>

Kod di atas mencipta klien WebSocket untuk mewujudkan sambungan dengan pelayan kami.

3. Jalankan sistem sembang

  1. Jalankan pelayan

Jalankan arahan berikut dalam terminal untuk menjalankan pelayan:

php server.php start

Jika semuanya berjalan lancar, anda sepatutnya dapat melihat output "Sambungan Baru".

  1. Buka klien

Buka fail client.html dalam penyemak imbas, masukkan mesej dalam kotak input, dan klik butang "Hantar" untuk menghantar mesej. Anda sepatutnya dapat melihat output "Mesej diterima" dalam terminal pelayan.

Kesimpulan:
Melalui contoh ini, kami berjaya melaksanakan sistem sembang yang sangat stabil menggunakan rangka kerja Workerman. Prestasi tinggi Workerman dan keupayaan pemprosesan tak segerak membolehkan kami mengendalikan sejumlah besar sambungan serentak, menghasilkan pengalaman sembang berkualiti tinggi. Saya harap artikel ini akan membantu anda memahami dan menggunakan Workerman.

Rujukan:

  • Dokumentasi rasmi pekerja: https://www.workerman.net/
  • Repositori GitHub Pekerja: https://github.com/walkor/Workerman

Atas ialah kandungan terperinci Perkongsian contoh pembangunan pekerja: mencapai sistem sembang kestabilan tinggi. 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