Perkongsian Amalan Pembangunan Pekerja: Melaksanakan Sistem Sembang Segera Yang Sangat Stabil
Pengenalan:
Sistem sembang segera merupakan bahagian yang sangat penting dalam aplikasi Internet hari ini, yang membolehkan pengguna berkomunikasi dan berkongsi maklumat dalam masa nyata. Walau bagaimanapun, untuk mencapai sistem sembang segera yang sangat stabil, pembangun perlu mempertimbangkan isu seperti kependaman rangkaian, pengurusan sambungan serentak dan kebolehpercayaan sistem. Artikel ini akan memperkenalkan penggunaan rangka kerja Workerman untuk membangunkan sistem sembang segera yang sangat stabil dan menyediakan contoh kod yang sepadan.
<?php require_once './Workerman/Autoloader.php'; use WorkermanWorker; use WorkermanLibTimer; $worker = new Worker("websocket://0.0.0.0:8000"); $worker->count = 4; $worker->onWorkerStart = function($worker) { Timer::add(1, function() use($worker) { $connections = $worker->connections; foreach($connections as $connection) { $connection->send(time()); } }); }; $worker->onMessage = function($connection, $data) { // 处理客户端发送的消息 }; Worker::runAll();
Kod sampel di atas menggunakan kelas Pekerja Pekerja dan kelas Pemasa. Kelas Pekerja mewakili proses Pekerja dan menghantar mesej kepada pelanggan dengan kerap melalui fungsi panggil balik onWorkerStart. Kelas Pemasa digunakan untuk menetapkan pemasa dan menghantar masa semasa kepada semua pelanggan yang disambungkan setiap saat.
$worker = new Worker("websocket://0.0.0.0:8000"); // 用户列表 $users = []; $worker->onConnect = function($connection) use(&$users) { // 新建连接,添加到在线用户列表 $users[$connection->id] = $connection; }; $worker->onClose = function($connection) use(&$users) { // 连接关闭,从在线用户列表移除 unset($users[$connection->id]); }; $worker->onMessage = function($connection, $data) use(&$users) { // 处理客户端发送的消息 foreach($users as $user) { $user->send($data); } };
Dalam kod di atas, dengan mentakrifkan fungsi panggil balik onConnect dan onClose, kami boleh menambah sambungan kepada atau apabila terdapat sambungan baharu dan apabila sambungan ditutup Dialih keluar daripada senarai pengguna dalam talian. Selepas menerima mesej yang dihantar oleh pelanggan, anda boleh melintasi senarai pengguna dalam talian dan menghantar mesej kepada setiap pengguna.
$worker->onError = function($connection, $code, $msg) { // 错误处理 }; $worker->onClose = function($connection) use(&$users) { // 连接关闭,从在线用户列表移除 unset($users[$connection->id]); };
Dalam kod contoh di atas, kami mengendalikan ralat seperti kehilangan sambungan, tamat masa sambungan, dll. dengan mentakrifkan fungsi panggil balik onError.
Kesimpulan:
Artikel ini memperkenalkan pengalaman praktikal menggunakan rangka kerja Workerman untuk membangunkan sistem sembang segera kestabilan tinggi. Melalui reka bentuk seni bina sistem yang sesuai dan menggunakan fungsi dan kelas yang disediakan oleh Workerman, kami boleh melaksanakan sistem sembang segera yang sangat stabil yang boleh mengendalikan sambungan serentak, mengurus senarai pengguna dalam talian, mengendalikan pengecualian, dsb. Saya harap artikel ini akan membantu pembangun sistem sembang segera.
Atas ialah kandungan terperinci Perkongsian amalan pembangunan pekerja: mencapai kestabilan tinggi sistem sembang masa nyata. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!