Rumah  >  Artikel  >  rangka kerja php  >  Amalan pengaturcaraan rangkaian pekerja: contoh membina sistem penyegerakan data masa nyata

Amalan pengaturcaraan rangkaian pekerja: contoh membina sistem penyegerakan data masa nyata

PHPz
PHPzasal
2023-08-06 09:21:281473semak imbas

Amalan Pengaturcaraan Rangkaian Pekerja: Contoh membina sistem penyegerakan data masa nyata

Pengenalan:
Dengan pembangunan berterusan dan aplikasi teknologi Internet, penyegerakan data masa nyata telah menjadi salah satu keperluan teras banyak sistem dan aplikasi semasa . Pengaturcaraan rangkaian ialah teknologi utama apabila melaksanakan sistem penyegerakan data masa nyata. Artikel ini akan memperkenalkan cara menggunakan rangka kerja pengaturcaraan rangkaian Workerman untuk membina sistem penyegerakan data masa nyata yang mudah dan praktikal, dan menerangkannya secara terperinci dengan contoh kod.

1. Apakah itu Pekerja?
Workerman ialah rangka kerja pengaturcaraan rangkaian PHP berprestasi tinggi Ia berdasarkan model tak segerak tidak menyekat dipacu peristiwa dan boleh mencapai komunikasi rangkaian konkurensi tinggi. Workerman boleh mengendalikan beribu-ribu sambungan serentak dan sesuai untuk membina aplikasi rangkaian berprestasi tinggi seperti sistem penyegerakan data masa nyata.

2. Pelan reka bentuk sistem penyegerakan data masa nyata
Kami akan menggunakan Workerman untuk membina sistem penyegerakan data masa nyata yang mudah Sistem ini merangkumi dua peranan, iaitu pelayan dan klien. Pelayan menerima mesej yang dihantar oleh pelanggan dan menolaknya kepada semua pelanggan yang disambungkan untuk mencapai penyegerakan data masa nyata.

1. Reka bentuk pelayan:
Pelayan perlu mencipta instance Workerman dan mendengar port yang ditentukan, menunggu sambungan pelanggan. Setelah pelanggan berjaya menyambung, pelayan akan mengekalkan kumpulan sambungan pelanggan dan menghantar mesej yang diterima kepada semua pelanggan yang disambungkan.

2. Reka bentuk pelanggan:
Pelanggan perlu menyambung ke pelayan dan menghantar mesejnya sendiri. Apabila pelayan menerima mesej, ia akan ditolak kepada semua pelanggan.

3. Contoh Kod
Berikut ialah contoh kod untuk pelayan dan pelanggan, menunjukkan cara menggunakan Workerman untuk membina sistem penyegerakan data masa nyata.

Contoh kod pelayan:

b7919456be4f1c06a72521f053e81193count = 4;

// Fungsi panggil balik apabila pelanggan menyambung
$ pekerja ->onConnect = function ($connection) {

echo "New client connected: " . $connection->id . "

";

global $worker;

// 向所有客户端推送新连接信息
foreach ($worker->connections as $conn) {
    $conn->send("New client connected: " . $connection->id);
}

// 将新连接加入连接池
$worker->connections[$connection->id] = $connection;

};

// Fungsi panggil balik apabila pelanggan memutuskan sambungan
$worker->onClose = function ($connection) {

echo "Client disconnected: " . $connection->id . "

;

global $worker;

// 向所有客户端推送断开连接信息
foreach ($worker->connections as $conn) {
    $conn->send("Client disconnected: " . $connection->id);
}

// 从连接池中移除断开的连接
unset($worker->connections[$connection->id]);

};

//Fungsi panggil balik apabila pelanggan menerima mesej
$worker->onMessage = function ($connection, $data) {

echo "Receive message from client: " . $data . "

";

global $worker;

// 向所有客户端推送接收到的消息
foreach ($worker->connections as $conn) {
    $conn->send("Message from client " . $connection->id . ": " . $data);
}

};

// Jalankan Worker
Worker::runAll();

Contoh kod pelanggan:

a60919e1001a2234882fbcd7011c80c1onConnect = function ($connection) {

echo "Connect to server success

";

$connection->send("Hello, server");
$connection->onMessage = function ($connection, $data) {
    echo "Receive message from server: " . $data . "

";

};
$connection->onClose = function () {
    echo "Server connection closed

";

};

};

// Run Worker
Worker::runAll();

IV. Keputusan eksperimen dan perbincangan di atas
Dengan contoh kod Th kita boleh menjalankan skrip bahagian pelayan dan bahagian klien dan memerhati interaksi antara mereka. Apabila pelanggan berjaya menyambung, pelayan dan pelanggan lain akan menerima pemberitahuan tentang sambungan baharu apabila pelanggan memutuskan sambungan, pelayan dan pelanggan lain juga akan menerima pemberitahuan yang sepadan. Mesej yang dihantar oleh pelanggan akan dimajukan oleh pelayan kepada semua pelanggan, merealisasikan penyegerakan data masa nyata yang mudah.

Ringkasan:
Artikel ini memperkenalkan contoh penggunaan rangka kerja pengaturcaraan rangkaian Workerman untuk membina sistem penyegerakan data masa nyata. Melalui sejumlah besar contoh kod, reka bentuk dan pelaksanaan pelayan dan klien diterangkan secara terperinci, dan eksperimen serta perbincangan yang berkaitan dijalankan. Saya harap artikel ini akan membantu pembangun yang sedang belajar dan mempraktikkan pengaturcaraan rangkaian.

Atas ialah kandungan terperinci Amalan pengaturcaraan rangkaian pekerja: contoh membina sistem penyegerakan data masa nyata. 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