Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Teknologi Pembangunan WebSocket PHP: Amalan Terbaik untuk Melaksanakan Fungsi Sembang Kumpulan

Teknologi Pembangunan WebSocket PHP: Amalan Terbaik untuk Melaksanakan Fungsi Sembang Kumpulan

PHPz
PHPzasal
2023-09-11 15:26:211375semak imbas

PHP WebSocket开发技术:实现群聊功能的最佳做法

Teknologi Pembangunan WebSocket PHP: Amalan Terbaik untuk Melaksanakan Fungsi Sembang Kumpulan

Pengenalan:
WebSocket ialah protokol komunikasi yang mewujudkan sambungan berterusan antara pelanggan dan pelayan Ia lebih fleksibel dan lebih fleksibel daripada komunikasi HTTP tradisional kaedah yang cekap. Apabila melaksanakan fungsi sembang kumpulan, WebSocket telah menjadi pilihan yang ideal teknologi pembangunan WebSocket PHP boleh melaksanakan fungsi sembang masa nyata dengan mudah. Artikel ini akan memperkenalkan amalan terbaik untuk menggunakan teknologi PHP WebSocket untuk melaksanakan fungsi sembang kumpulan.

Bina pelayan Soket:
Pertama, kita perlu membina pelayan Soket untuk mengendalikan sambungan WebSocket. Dalam PHP, anda boleh menggunakan Ratchet, perpustakaan sumber terbuka, untuk membina pelayan WebSocket dengan mudah. Gunakan Komposer untuk memasang Ratchet:

komposer memerlukan cboden/ratchet

Buat fail Pelayan, yang boleh dinamakan WebSocketServer.php:

use RatchetServerIoServer;
use RatchetHttpHttpServer;
use RatchetWebSocketWsServer;

require 'vendor/autoload.php';

$server = IoServer::factory(
    new HttpServer(
        new WsServer(
            new Chat()
        )
    ),
    8080
);

$server->run();

Kod di atas mencipta pelayan Soket dan mendengar pada port 8080. Dalam kelas Sembang kami akan mentakrifkan fungsi sembang kumpulan tertentu.

Kendalikan mesej WebSocket:
Buat kelas Sembang untuk mengendalikan mesej WebSocket:

use RatchetMessageComponentInterface;
use RatchetConnectionInterface;

class Chat implements MessageComponentInterface
{
    protected $clients;

    public function __construct()
    {
        $this->clients = new SplObjectStorage();
    }

    public function onOpen(ConnectionInterface $conn)
    {
        $this->clients->attach($conn);
        echo "New connection! ({$conn->resourceId})
";
    }

    public function onClose(ConnectionInterface $conn)
    {
        $this->clients->detach($conn);
        echo "Connection {$conn->resourceId} has disconnected
";
    }

    public function onError(ConnectionInterface $conn, Exception $e)
    {
        echo "An error has occurred: {$e->getMessage()}
";

        $conn->close();
    }

    public function onMessage(ConnectionInterface $from, $msg)
    {
        echo "Message from {$from->resourceId}: $msg
";

        foreach ($this->clients as $client) {
            if ($client !== $from) {
                $client->send($msg);
            }
        }
    }
}

Dalam kod di atas, kaedah onOpen() dipanggil apabila terdapat sambungan WebSocket baharu dan menyimpan sambungan. Kaedah onClose() dipanggil apabila sambungan ditutup, mengalih keluar sambungan daripada storan. Kaedah onError() dipanggil apabila ralat berlaku, dan kaedah onMessage() dipanggil apabila terdapat mesej WebSocket.

Mulakan pelayan Socket:
Masukkan baris arahan, navigasi ke direktori di mana WebSocketServer.php terletak, dan laksanakan arahan berikut untuk memulakan pelayan Socket:

php WebSocketServer.php

Sekarang, pelayan WebSocket telah bermula dengan jayanya dan bersedia untuk menerima sambungan WebSocket dan memproses Fungsi sembang kumpulan.

Buat sambungan WebSocket menggunakan JavaScript:
Gunakan API JavaScript pada halaman hujung hadapan untuk membuat sambungan WebSocket dan menghantar serta menerima mesej.

var socket = new WebSocket('ws://localhost:8080');

socket.onopen = function () {
    console.log('WebSocket Connection Established');
};

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

function sendMessage() {
    var message = document.getElementById('message').value;
    socket.send(message);
}

Dalam kod di atas, WebSocket dicipta untuk menyambung ke alamat pelayan ws://localhost:8080. Kaedah onopen() dipanggil apabila sambungan berjaya diwujudkan. Kaedah onmessage() dipanggil apabila mesej WebSocket diterima.

Di halaman hujung hadapan, tambahkan kotak input dan butang hantar. Apabila butang hantar diklik, fungsi sendMessage() dipanggil dan kandungan kotak input dihantar ke pelayan.

Kesimpulan:
Teknologi pembangunan PHP WebSocket menyediakan penyelesaian ideal untuk merealisasikan fungsi sembang kumpulan masa nyata. Dengan membina pelayan Socket dan menggunakan JavaScript untuk mencipta sambungan WebSocket, kami boleh mencapai komunikasi WebSocket yang cekap dan menghantar mesej sembang kumpulan dalam masa nyata. Saya berharap amalan terbaik yang diperkenalkan dalam artikel ini akan membantu pemula dan pembangun.

Atas ialah kandungan terperinci Teknologi Pembangunan WebSocket PHP: Amalan Terbaik untuk Melaksanakan Fungsi Sembang Kumpulan. 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