Rumah  >  Artikel  >  rangka kerja php  >  Panduan Pembangunan Pekerja: Membina Aplikasi Sembang Masa Nyata yang Cekap

Panduan Pembangunan Pekerja: Membina Aplikasi Sembang Masa Nyata yang Cekap

王林
王林asal
2023-08-07 15:05:05711semak imbas

Panduan Pembangunan Pekerja: Membina Aplikasi Sembang Masa Nyata yang Cekap

Pengenalan:
Dengan perkembangan teknologi rangkaian dan populariti telefon pintar, aplikasi sembang masa nyata menjadi semakin penting dalam kehidupan seharian kita. Apabila membina aplikasi sembang masa nyata yang cekap, memilih rangka kerja yang sesuai adalah penting. Workerman ialah rangka kerja PHP yang sangat baik yang boleh membantu kami membina aplikasi sembang masa nyata yang cekap dengan cepat. Artikel ini akan memperkenalkan cara menggunakan Workerman untuk membina aplikasi sembang masa nyata yang ringkas dan memberikan contoh kod yang sepadan.

Bahagian 1: Pengenalan kepada Workerman
Workerman ialah rangka kerja pelayan soket berprestasi tinggi berdasarkan PHP. Ia boleh mengendalikan sejumlah besar sambungan TCP secara serentak dan menyediakan keupayaan komunikasi dua hala masa nyata. Berbanding dengan rangka kerja PHP tradisional, Workerman menggunakan pendekatan dipacu peristiwa untuk mengendalikan sambungan dan mesej, mengelakkan overhed tradisional untuk mencipta proses atau urutan baharu untuk setiap permintaan. Ini menjadikan Workerman sesuai untuk pembangunan aplikasi sembang masa nyata.

Bahagian 2: Persediaan
Sebelum anda mula menggunakan Workerman, anda perlu terlebih dahulu memasang PHP pada pelayan dan memasang rangka kerja Workerman. Workerman boleh dipasang dengan arahan berikut:

composer require workerman/workerman

Seterusnya, buat fail PHP baharu bernama chat_server.php. Perkenalkan rangka kerja Workerman ke dalam fail ini dan buat contoh Pekerja baharu:

require_once __DIR__ . '/vendor/autoload.php';
use WorkermanWorker;

$worker = new Worker('websocket://0.0.0.0:8000');

Protokol soket web digunakan di sini dan mendengar port 8000. Anda juga boleh memilih protokol dan port lain. Seterusnya, kita perlu mendaftarkan fungsi panggil balik untuk sambungan WebSocket dan acara mesej:

$worker->onConnect = function($connection) {
    // 处理新的WebSocket连接
};

$worker->onMessage = function($connection, $data) {
    // 处理接收到的WebSocket消息
};

Bahagian 3: Mengendalikan sambungan WebSocket baharu
Apabila terdapat sambungan WebSocket baharu, kita perlu mencipta objek sambungan baharu untuknya. Dalam objek ini, kita boleh mengendalikan pelbagai peristiwa sambungan, seperti menerima mesej, menutup sambungan, dsb. Berikut ialah contoh mudah:

$worker->onConnect = function($connection) {
    // 将新的连接添加到连接池
    $client_id = $connection->id;
    $GLOBALS['connections'][$client_id] = $connection;
    
    // 发送欢迎消息
    $connection->send('Welcome to the chat room!');
};

Dalam contoh ini, kami menambah sambungan baharu pada kumpulan sambungan global dan menghantar mesej alu-aluan kepada pelanggan.

Bahagian 4: Memproses Mesej WebSocket yang Diterima
Apabila kami menerima mesej WebSocket, kami perlu menyiarkan mesej ini ke semua sambungan. Berikut ialah contoh mudah:

$worker->onMessage = function($connection, $data) {
    // 将接收到的消息广播给所有的连接
    foreach($GLOBALS['connections'] as $conn) {
        $conn->send($data);
    }
};

Dalam contoh ini, kami menyiarkan mesej yang diterima ke semua sambungan.

Bahagian 5: Mulakan contoh Pekerja
Selepas melengkapkan konfigurasi di atas, kita perlu memulakan tika Pekerja dengan memanggil kaedah run() dan menjadikannya mula mendengar sambungan:

Worker::runAll();

Bahagian 6: Jalankan sembang masa nyata aplikasi
Pada baris arahan Jalankan arahan berikut untuk memulakan fail chat_server.php:

php chat_server.php start

Dengan cara ini, Workerman akan mula mendengar port 8000 dan menunggu sambungan WebSocket.

Bahagian 7: Menulis kod bahagian hadapan untuk aplikasi sembang langsung
Kod bahagian hadapan untuk aplikasi sembang langsung ditulis dalam JavaScript dan boleh berkomunikasi dengan pelayan menggunakan API WebSocket. Berikut ialah contoh mudah:

var ws = new WebSocket('ws://localhost:8000');
ws.onmessage = function(event) {
    var message = event.data;
    // 处理接收到的消息
};

function sendMessage(message) {
    ws.send(message);
}

Dalam contoh ini, kami menyambung ke pelayan melalui WebSocket dan menyediakan fungsi panggil balik untuk menerima mesej. Mesej yang diterima boleh diproses mengikut keperluan khusus dan dihantar ke pelayan melalui fungsi sendMessage.

Kesimpulan:
Artikel ini memperkenalkan cara menggunakan rangka kerja Workerman untuk membangunkan aplikasi sembang masa nyata yang cekap. Dengan menggunakan Workerman, kami boleh membina aplikasi sembang dengan pantas yang boleh mengendalikan sejumlah besar sambungan. Saya harap artikel ini dapat membantu pembangunan aplikasi sembang masa nyata.

Di atas adalah kandungan Panduan Pembangunan Pekerja: Membina Aplikasi Sembang Masa Nyata yang Cekap Saya harap ia akan membantu anda.

Atas ialah kandungan terperinci Panduan Pembangunan Pekerja: Membina Aplikasi Sembang Masa Nyata yang Cekap. 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