Rumah >rangka kerja php >Workerman >Perkongsian kes praktikal dan pengalaman pelaksanaan sembang dalam talian oleh pekerja
Perkongsian kes praktikal dan pengalaman pekerja dalam melaksanakan sembang dalam talian
Pengenalan: Sembang dalam talian ialah salah satu fungsi yang sangat biasa dalam rangkaian sosial moden. Dalam era digital ini, orang ramai mahu dapat berkomunikasi dengan rakan, keluarga dan rakan sekerja dalam masa nyata. Workerman ialah rangka kerja pengaturcaraan rangkaian tak segerak PHP berprestasi tinggi, yang memberikan kami cara yang mudah dan boleh dipercayai untuk melaksanakan fungsi sembang dalam talian. Artikel ini akan memperkenalkan cara menggunakan rangka kerja Workerman untuk membina ruang sembang dalam talian asas dan berkongsi beberapa pengalaman praktikal serta contoh kod.
1. Persediaan
Sebelum kita mula, kita perlu menyediakan beberapa persekitaran dan alatan:
2. Bina rangka kerja asas
require_once __DIR__ . '/Workerman/Autoloader.php';
reee: Tetapkan instance Pekerja Parameter yang sedang berjalan:
use WorkermanWorker; $ws = new Worker('websocket://0.0.0.0:8000');
kendalikan acara sambungan pelanggan, apabila terdapat sambungan pelanggan baharu, simpannya ke tatasusunan:
$ws->count = 4; // 设置Worker进程数量 $ws->name = 'ChatRoom'; // 设置Worker名称
kendalikan acara pemutusan sambungan pelanggan, apabila terdapat pemutusan sambungan pelanggan Apabila membuka sambungan, alih keluarnya daripada tatasusunan:
$ws->onConnect = function($connection) { global $ws; $ws->clients[$connection->id] = $connection; };
Kendalikan acara mesej pelanggan Apabila pelanggan menghantar mesej, siarkan mesej itu kepada semua pengguna dalam talian:
$ws->onClose = function($connection) { global $ws; unset($ws->clients[$connection->id]); };
Akhir sekali, mulakan contoh Pekerja:
.$ws->onMessage = function($connection, $data) { global $ws; foreach ($ws->clients as $client) { $client->send($data); } };
4. Tulis kod pelanggan
Dalam fail index.php, tambahkan halaman HTML untuk memaparkan ruang sembang:
Worker::runAll();
Mulakan pelayan, masukkan folder di mana kod itu terletak, dan laksanakan arahan berikut:
<!DOCTYPE html> <html> <head> <title>在线聊天室</title> </head> <body> <div id="messageContainer"> </div> <input type="text" id="messageInput"> <button onclick="sendMessage()">发送</button> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script> var ws = new WebSocket('ws://your_server_ip:8000'); ws.onmessage = function(event) { var message = event.data; $("#messageContainer").append("<p>" + message + "</p>"); }; function sendMessage() { var message = $("#messageInput").val(); ws.send(message); } </script> </body> </html>
Atas ialah kandungan terperinci Perkongsian kes praktikal dan pengalaman pelaksanaan sembang dalam talian oleh pekerja. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!