Panduan Pembangunan WebSocket PHP: Analisis Langkah-Langkah Melaksanakan Fungsi Utama
Dengan pembangunan berterusan aplikasi Internet, WebSocket, sebagai protokol komunikasi masa nyata, telah menjadi alat penting dalam pembangunan Web. Dalam bidang PHP, fungsi seperti sembang masa nyata dan pemberitahuan tolak boleh direalisasikan dengan menggunakan WebSocket. Artikel ini akan memperkenalkan secara terperinci cara menggunakan PHP untuk membangunkan aplikasi WebSocket dan menyediakan analisis langkah demi langkah bagi beberapa fungsi utama.
1 Pengenalan kepada WebSocket
WebSocket ialah protokol komunikasi dupleks penuh yang membolehkan pelayan menolak data secara aktif kepada klien tanpa memerlukan pelanggan menghantar permintaan untuk mendapatkan data secara berterusan. WebSocket adalah berdasarkan protokol HTTP, berkongsi port dengannya, sesuai untuk mana-mana pelayar, dan menyokong komunikasi merentas domain.
2. Persekitaran pembangunan WebSocket PHP
Membangunkan aplikasi WebSocket memerlukan sokongan sambungan WebSocket PHP, yang boleh dipasang menggunakan arahan berikut:
pecl install swoole
3 Mewujudkan pelayan WebSocket
Menggunakan sambungan PHP Swoole, anda boleh membuat pelayan WebSocket. . Kodnya adalah seperti berikut :
$server = new SwooleWebSocketServer("0.0.0.0", 8080); $server->on('open', function (SwooleWebSocketServer $server, $request) { echo "new connection: {$request->fd} "; }); $server->on('message', function (SwooleWebSocketServer $server, $frame) { echo "received message: {$frame->data} "; }); $server->on('close', function ($ser, $fd) { echo "connection closed: {$fd} "; }); $server->start();
Empat fungsi utama
Mesej siaran
Mesej siaran ialah fungsi yang menolak mesej kepada semua pelanggan yang disambungkan. Fungsi boleh ditakrifkan untuk melaksanakan fungsi siaran Kod khusus adalah seperti berikut:
function broadcast($server, $message) { foreach ($server->connections as $fd) { $server->push($fd, $message); } }
Pengurusan sambungan pelanggan
Pelayan WebSocket membenarkan sambungan pelanggan berbilang, jadi sambungan pelanggan perlu diuruskan. Anda boleh menggunakan tatasusunan untuk menyimpan pelanggan yang sedang disambungkan Kod khusus adalah seperti berikut:
$connections = []; $server->on('open', function (SwooleWebSocketServer $server, $request) use (&$connections) { echo "new connection: {$request->fd} "; $connections[$request->fd] = $request->fd; }); $server->on('close', function ($ser, $fd) use (&$connections) { echo "connection closed: {$fd} "; unset($connections[$fd]); });
Fungsi sembang peribadi
Fungsi sembang peribadi ialah fungsi yang menolak mesej kepada pelanggan tertentu. Pengecam pelanggan boleh digunakan untuk mengenal pasti pelanggan secara unik Kod khusus adalah seperti berikut:
function sendToClient($server, $clientId, $message) { $server->push($clientId, $message); }
Pengesan degupan jantung ialah fungsi yang memastikan pelanggan sentiasa berhubung pelanggan berada dalam keadaan tertentu Jika tiada paket degupan jantung diterima dalam masa tersebut, sambungan dianggap terputus. Kod khusus adalah seperti berikut:
$server->on('message', function (SwooleWebSocketServer $server, $frame) { echo "received message: {$frame->data} "; $connections[$frame->fd]['lastTime'] = time(); // 处理收到的消息 }); $server->tick(2000, function () use (&$connections) { foreach ($connections as $fd => $info) { if (time() - $info['lastTime'] > 5) { $server->close($fd); unset($connections[$fd]); } } });
Artikel ini memperkenalkan cara menggunakan PHP untuk membangunkan aplikasi WebSocket, dan menyediakan analisis langkah demi langkah bagi fungsi utama. Melalui langkah di atas, pembangun boleh melaksanakan mesej siaran WebSocket, pengurusan sambungan pelanggan, fungsi sembang peribadi, pengesanan degupan jantung dan fungsi lain. Saya harap artikel ini berguna kepada pembangun PHP WebSocket.
Atas ialah kandungan terperinci Panduan Pembangunan WebSocket PHP: Analisis Langkah-Langkah Melaksanakan Fungsi Utama. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!