Penjelasan terperinci tentang contoh pembangunan PHP WebSocket: proses terperinci tentang cara melaksanakan fungsi tertentu
1 Pengenalan
WebSocket ialah protokol komunikasi dupleks penuh berdasarkan protokol TCP, yang membolehkan penubuhan sambungan berterusan antara. pelanggan dan pelayan masa nyata penghantaran data dua hala. Dalam pembangunan Web, WebSocket boleh digunakan untuk melaksanakan beberapa fungsi tertentu, seperti sembang masa nyata, paparan data masa nyata, dsb. Artikel ini akan memperkenalkan secara terperinci cara menggunakan PHP untuk membangunkan fungsi WebSocket dan melaksanakan fungsi tertentu.
2. Konfigurasi persekitaran
Untuk menggunakan fungsi WebSocket dalam PHP, anda perlu memenuhi syarat berikut:
pecl install swoole
(pastikan pecl dipasang) 3. Proses pembangunan
Berikut adalah proses terperinci untuk melaksanakan fungsi tertentu.
Buat pelayan WebSocket
Pertama, kita perlu mencipta pelayan WebSocket, mendengar port yang ditentukan dan mengendalikan sambungan pelanggan, mesej dan acara lain. Ini boleh dicapai menggunakan kelas SwooleWebSocketServer yang disediakan oleh sambungan Swoole. Berikut ialah contoh mudah:
<?php $server = new SwooleWebSocketServer('0.0.0.0', 8080); $server->on('open', function ($server, $request) { echo "new connection: {$request->fd} "; }); $server->on('message', function ($server, $frame) { $server->push($frame->fd, 'Server received: ' . $frame->data); }); $server->on('close', function ($server, $fd) { echo "connection closed: {$fd} "; }); $server->start();
Kod di atas mencipta pelayan WebSocket yang mendengar pada port 8080. Apabila terdapat sambungan baru, ID sambungan baru akan dicetak apabila mesej diterima, mesej akan dihantar semula kepada pelanggan apabila sambungan ditutup, ID sambungan tertutup akan dicetak.
Mengendalikan fungsi tertentu
Mengendalikan fungsi khusus pada pelayan WebSocket perlu dibangunkan mengikut keperluan perniagaan. Berikut ialah contoh untuk melaksanakan fungsi sembang masa nyata yang mudah:
<?php $server = new SwooleWebSocketServer('0.0.0.0', 8080); $connections = []; $server->on('open', function ($server, $request) use (&$connections) { $connections[$request->fd] = $request->fd; echo "new connection: {$request->fd} "; }); $server->on('message', function ($server, $frame) use (&$connections) { foreach ($connections as $fd) { $server->push($fd, 'User ' . $frame->fd . ' says: ' . $frame->data); } }); $server->on('close', function ($server, $fd) use (&$connections) { unset($connections[$fd]); echo "connection closed: {$fd} "; }); $server->start();
Kod di atas menyimpan ID sambungan ke dalam tatasusunan apabila sambungan dibuka apabila mesej diterima, mesej dihantar ke semua sambungan; sambungan ditutup, padam ID yang sepadan daripada tatasusunan.
4 Gunakan fungsi WebSocket
Selepas persekitaran pembangunan selesai, anda boleh menggunakan penyemak imbas atau alat lain untuk menyambung dan menghantar mesej melalui WebSocket. Berikut ialah contoh menggunakan JavaScript untuk menyambung dan menghantar mesej:
var ws = new WebSocket('ws://localhost:8080'); ws.onopen = function () { console.log('connected'); }; ws.onmessage = function (event) { console.log('received: ' + event.data); }; ws.onclose = function () { console.log('disconnected'); }; ws.send('Hello, WebSocket!');
Kod di atas mencipta sambungan WebSocket dan mengendalikannya dengan sewajarnya apabila sambungan dibuka, mesej diterima dan sambungan ditutup. Akhir sekali, hantar mesej ke pelayan melalui kaedah hantar.
5 Ringkasan
Artikel ini memperkenalkan secara terperinci proses membangunkan fungsi WebSocket menggunakan PHP, dan mengambil fungsi sembang masa nyata sebagai contoh. WebSocket boleh digunakan untuk melaksanakan beberapa fungsi tertentu dan penghantaran data dua hala masa nyata dalam pembangunan Web. Saya harap artikel ini dapat membantu pembaca memahami dan menggunakan teknologi WebSocket.
Atas ialah kandungan terperinci Penjelasan terperinci tentang contoh pembangunan WebSocket PHP: proses terperinci tentang cara melaksanakan fungsi tertentu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!