Amalan Pengaturcaraan Rangkaian Pekerja: Membina Sistem Penyegerakan Data Segera yang Boleh Dipercayai
Dengan populariti Internet dan peranti mudah alih, komunikasi segera menjadi semakin penting. Menyedari pemesejan segera dan penyegerakan data antara peranti dan platform yang berbeza telah menjadi keperluan biasa dalam kalangan pembangun. Dalam artikel ini, kami akan meneroka cara membina sistem penyegerakan data masa nyata yang boleh dipercayai menggunakan rangka kerja pengaturcaraan rangkaian Workerman.
composer require workerman/workerman
Selepas pemasangan selesai, kita boleh memulakan Workerman melalui kod berikut:
<?php require_once __DIR__ . '/vendor/autoload.php'; use WorkermanWorker; $worker = new Worker(); $worker->listen('tcp://0.0.0.0:2345'); $worker->onMessage = function ($connection, $data) { // 这里处理收到的消息 }; Worker::runAll();
Kod di atas mencipta objek Worker dan mendengar sambungan TCP pada port 2345. Mesej daripada klien diproses melalui fungsi panggil balik onMessage. Kita boleh melaksanakan logik perniagaan kita sendiri dalam fungsi panggil balik.
Kod pelayan:
<?php require_once __DIR__ . '/vendor/autoload.php'; use WorkermanWorker; $worker = new Worker(); $worker->listen('websocket://0.0.0.0:8000'); $worker->onMessage = function ($connection, $data) { // 处理收到的消息 $data = json_decode($data, true); // 存储消息到数据库 saveMessageToDatabase($data); // 缓存消息 cacheMessage($data); // 向所有客户端广播消息 broadcastMessage($data); }; $worker->onClose = function ($connection) { // 处理客户端断开连接 removeClient($connection); }; function saveMessageToDatabase($data) { // 将消息存储到数据库中 } function cacheMessage($data) { // 缓存消息 } function broadcastMessage($data) { // 向所有客户端广播消息 } function removeClient($connection) { // 处理客户端断开连接 } Worker::runAll();
Kod pelanggan:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Chat</title> </head> <body> <input type="text" id="message" placeholder="输入消息"> <button onclick="sendMessage()">发送</button> <script src="http://localhost:8000/socket.io/socket.io.js"></script> <script> var socket = io('http://localhost:8000'); socket.on('connect', function() { console.log('Connected to server'); }); socket.on('message', function(data) { console.log('Received message:', data); }); function sendMessage() { var message = document.getElementById('message').value; socket.emit('message', message); } </script> </body> </html>
Kod di atas berkomunikasi melalui protokol Websocket. Pelayan menggunakan kelas WebSocket yang disediakan oleh Workerman untuk mencipta pelayan Websocket, dan pelanggan menggunakan perpustakaan socket.io untuk berkomunikasi dengan pelayan.
Atas ialah kandungan terperinci Amalan pengaturcaraan rangkaian pekerja: membina sistem penyegerakan data masa nyata yang boleh dipercayai. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!