Rumah >pembangunan bahagian belakang >tutorial php >Contoh pembangunan PHP WebSocket: kes praktikal tentang cara melaksanakan fungsi tertentu
Contoh pembangunan PHP WebSocket: kes praktikal tentang cara melaksanakan fungsi tertentu
Pengenalan:
Dengan pembangunan Internet, protokol HTTP tradisional mempunyai beberapa batasan dalam komunikasi masa nyata. WebSocket ialah protokol komunikasi dupleks penuh berdasarkan protokol TCP, yang boleh merealisasikan komunikasi masa nyata antara pelanggan dan pelayan. Artikel ini akan menggunakan kes praktikal untuk memperkenalkan cara menggunakan PHP WebSocket untuk melaksanakan fungsi tertentu.
(1) Wujudkan pelayan WebSocket
Mula-mula, kita perlu membina pelayan WebSocket. Anda boleh menggunakan sambungan swoole PHP untuk membina pelayan WebSocket. Swoole ialah sambungan PHP berprestasi tinggi yang menyediakan sokongan untuk WebSocket. Kami boleh mencipta pelayan WebSocket dengan melaksanakan kod berikut:
<?php $server = new swoole_websocket_server("0.0.0.0", 9501); $server->on('open', function ($server, $request) { echo "new connection open: ".$request->fd; }); $server->on('message', function ($server, $frame) { echo "received message: ".$frame->data; }); $server->on('close', function ($ser, $fd) { echo "connection close: ".$fd; }); $server->start(); ?>
Dalam kod ini, kami mencipta pelayan WebSocket dengan alamat IP pendengaran 0.0.0.0 dan nombor port 9501. Apabila sambungan baharu diwujudkan, pelayan secara automatik akan memanggil fungsi pengendalian acara open
事件处理函数;当接收到客户端发送过来的消息时,服务器会调用message
事件处理函数;而当连接关闭时,服务器会调用close
.
(2) Pembangunan halaman hadapan
Seterusnya, kita perlu membangunkan halaman hadapan untuk memaparkan antara muka bilik sembang dan berkomunikasi dengan pelayan. Berikut ialah kod halaman hadapan yang ringkas:
<!DOCTYPE html> <html> <head> <title>WebSocket Chat Room</title> <script> var socket = new WebSocket("ws://localhost:9501"); socket.onopen = function(event) { console.log("WebSocket connection open"); }; socket.onmessage = function(event) { console.log("Received message: " + event.data); }; socket.onclose = function(event) { console.log("WebSocket connection closed"); }; </script> </head> <body> <h1>WebSocket Chat Room</h1> <div id="chat-messages"></div> <input type="text" id="input-message"> <button onclick="sendMessage()">Send</button> <script> function sendMessage() { var message = document.getElementById("input-message").value; socket.send(message); } </script> </body> </html>
Kod ini bersambung ke pelayan melalui WebSocket dan mentakrifkan fungsi pemprosesan untuk membuka sambungan, menerima mesej dan menutup sambungan. Melalui butang dan kotak teks, pengguna boleh memasukkan kandungan sembang dan menghantarnya ke pelayan.
(3) Pelaksanaan fungsi bilik sembang
Di bahagian pelayan, kita perlu menambah beberapa logik untuk melaksanakan fungsi bilik sembang. Ubah suai kod pelayan seperti berikut:
<?php $server = new swoole_websocket_server("0.0.0.0", 9501); $server->on('open', function ($server, $request) { echo "new connection open: ".$request->fd." "; }); $server->on('message', function ($server, $frame) { echo "received message: ".$frame->data." "; // 广播消息给所有客户端 foreach ($server->connections as $fd) { $server->push($fd, $frame->data); } }); $server->on('close', function ($ser, $fd) { echo "connection close: ".$fd." "; }); $server->start(); ?>
Dalam kod yang diubah suai, apabila menerima mesej daripada klien, pelayan akan menyiarkan mesej tersebut kepada semua pelanggan yang disambungkan. Dengan cara ini, semua mesej yang dihantar oleh pengguna pada halaman bilik sembang akan dipaparkan pada halaman pengguna lain dalam masa nyata.
Ringkasan:
Melalui kes praktikal di atas, kami belajar cara menggunakan PHP WebSocket untuk melaksanakan bilik sembang dalam talian yang mudah. Dengan bantuan sambungan swoole PHP, kami boleh membina pelayan dengan mudah berdasarkan WebSocket untuk mencapai fungsi komunikasi masa nyata. Selain itu, WebSocket boleh digunakan dalam lebih banyak senario, seperti paparan data masa nyata, pengeditan kolaboratif berbilang orang, dsb. Saya harap artikel ini akan membantu dalam memahami dan menggunakan PHP WebSocket.
Atas ialah kandungan terperinci Contoh pembangunan PHP WebSocket: kes praktikal tentang cara melaksanakan fungsi tertentu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!