Mulakan dengan pantas: Tutorial tentang pembangunan dan pelaksanaan WebSocket PHP
Pengenalan:
WebSocket ialah protokol standard terbuka untuk komunikasi masa nyata Ia boleh mewujudkan sambungan berterusan antara penyemak imbas dan pelayan untuk mencapai komunikasi dua hala . Dalam pembangunan Web, WebSocket digunakan secara meluas dalam sembang masa nyata, pemberitahuan masa nyata, kerjasama berbilang orang dan senario lain. Artikel ini akan memperkenalkan cara menggunakan PHP untuk membangunkan aplikasi WebSocket dan melaksanakan fungsi dengan cepat.
1. Apakah itu WebSocket?
WebSocket ialah protokol untuk komunikasi dupleks penuh pada sambungan TCP tunggal Ia membolehkan pelayan menghantar mesej secara proaktif kepada pelanggan dengan mewujudkan sambungan berterusan semasa fasa jabat tangan protokol HTTP. Berbanding dengan permintaan HTTP tradisional, WebSocket lebih cekap dan masa nyata.
2. Pembinaan persekitaran pembangunan WebSocket PHP
Untuk membangunkan PHP WebSocket, kita perlu membina persekitaran yang sepadan. Mula-mula, pastikan anda mempunyai persekitaran PHP yang dipasang pada komputer anda. Kemudian, pasang perpustakaan Ratchet melalui Komposer Ratchet ialah perpustakaan WebSocket yang disyorkan secara rasmi untuk PHP dan menyediakan satu siri kelas dan kaedah yang mudah digunakan.
composer init
dan isikan maklumat projek seperti yang digesa. composer init
,按照提示填写项目信息。composer require cboden/ratchet
,Composer将会自动下载并安装Ratchet库及其依赖。三、实现一个简单的WebSocket服务器
在已经搭建好的开发环境中,我们可以开始编写WebSocket服务器的代码了。
引入Ratchet库相关文件:在文件开头添加以下代码:
<?php require __DIR__.'/vendor/autoload.php'; use RatchetMessageComponentInterface; use RatchetConnectionInterface;
实现WebSocket服务器类:在文件中添加以下代码:
class MyWebSocketServer implements MessageComponentInterface{ protected $clients; public function __construct() { $this->clients = new SplObjectStorage; } public function onOpen(ConnectionInterface $conn) { $this->clients->attach($conn); echo "New connection! ({$conn->resourceId}) "; } public function onMessage(ConnectionInterface $from, $msg) { $numRecv = count($this->clients) - 1; echo sprintf('Connection %d sending message "%s" to %d other connection%s'." ", $from->resourceId, $msg, $numRecv, $numRecv == 1 ? '' : 's'); foreach ($this->clients as $client) { if ($from !== $client) { $client->send($msg); } } } public function onClose(ConnectionInterface $conn) { $this->clients->detach($conn); echo "Connection {$conn->resourceId} has disconnected "; } public function onError(ConnectionInterface $conn, Exception $e) { echo "An error has occurred: {$e->getMessage()} "; $conn->close(); } }
启动WebSocket服务器:在文件末尾添加以下代码:
use RatchetServerIoServer; use RatchetHttpHttpServer; use RatchetWebSocketWsServer; $server = IoServer::factory( new HttpServer( new WsServer( new MyWebSocketServer() ) ), 8080 ); $server->run();
四、运行WebSocket服务器
在命令行中,进入到"server.php"所在的目录,运行命令php server.php
composer require cboden/ratchet
dalam baris arahan, Composer akan memuat turun dan memasang pustaka Ratchet dan kebergantungannya secara automatik. <!DOCTYPE html> <html> <head> <title>WebSocket Client</title> </head> <body> <script> var ws = new WebSocket("ws://localhost:8080"); ws.onopen = function() { console.log("WebSocket connection established."); }; ws.onmessage = function(evt) { var receivedMsg = evt.data; console.log("Received message: " + receivedMsg); }; ws.onclose = function() { console.log("WebSocket connection closed."); }; </script> </body> </html>
rrreee
Mulakan pelayan WebSocket Tambahkan kod berikut pada penghujung fail:
rrreee
php server.php.
. Jika semuanya dikonfigurasikan dengan betul, anda akan melihat pelayan dimulakan dengan jayanya. 🎜🎜5. Tulis klien WebSocket🎜Untuk menguji pelayan WebSocket yang kami tulis, kami perlu menulis klien WebSocket yang mudah. 🎜🎜🎜Buat fail HTML baharu bernama "client.html". 🎜🎜🎜Tambah kod berikut dalam fail HTML: 🎜rrreee🎜🎜🎜 6. Larian ujian🎜Buka fail "client.html" bertulis dalam penyemak imbas. Juga pastikan pelayan WebSocket berjalan. Anda kini seharusnya melihat konsol mencetak maklumat mengenai sambungan WebSocket yang diwujudkan dan mesej yang diterima. 🎜🎜7. Fungsi lanjutan🎜Melalui langkah di atas, anda telah berjaya membangunkan PHP WebSocket asas dan melaksanakan fungsi penghantaran dan penerimaan mesej asas. Anda boleh mengembangkan lagi fungsi pelayan dan klien mengikut keperluan, seperti pengesahan pengguna, pengurusan bilik, penyulitan penghantaran data, dsb. 🎜🎜Kesimpulan: 🎜Artikel ini memperkenalkan secara ringkas cara menggunakan PHP untuk membangunkan aplikasi WebSocket, dan melaksanakan fungsi sembang WebSocket yang mudah melalui langkah-langkah seperti menyediakan persekitaran, menulis kod pelayan, menjalankan pelayan dan menulis klien. Dengan mengkaji dan memahami kandungan artikel ini, anda boleh dengan cepat memulakan pembangunan PHP WebSocket dan menggunakan keupayaan komunikasi masa nyatanya untuk mencapai lebih banyak fungsi dan aplikasi. 🎜
Atas ialah kandungan terperinci Bermula dengan cepat: Tutorial untuk membangunkan dan melaksanakan fungsi PHP WebSocket. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!