Cara Membuat Pelayan Websocket dalam PHP
Latar Belakang
WebSockets menyediakan dupleks penuh , saluran komunikasi masa nyata antara pelanggan dan pelayan melalui sambungan HTTP sedia ada. Dalam PHP, beberapa rangka kerja membantu dalam penciptaan pelayan WebSocket.
Kod PHPWebSocket
Anda telah menyebut kesukaran dalam mengemas kini perpustakaan phpwebsocket. Walaupun ia pernah popular, usianya mungkin menimbulkan isu. Berikut ialah kaedah alternatif:
Kod PHP untuk Pelayan
<code class="php"><?php // Create WebSocket server on localhost:12345 $master = WebSocket("localhost", 12345); // Initialize sockets and user arrays $sockets = array($master); $users = array(); while (true) { $changed = $sockets; socket_select($changed, $write = NULL, $except = NULL, NULL); foreach ($changed as $socket) { if ($socket == $master) { // Handle new client connections $client = socket_accept($master); if ($client < 0) { echo "socket_accept() failed\n"; continue; } else { connect($client); } } else { // Handle incoming data from clients $bytes = @socket_recv($socket, $buffer, 2048, 0); if ($bytes == 0) { disconnect($socket); } else { $user = getuserbysocket($socket); if (!$user->handshake) { dohandshake($user, $buffer); } else { process($user, $buffer); } } } } }</code>
Kod JavaScript untuk Pelanggan
<code class="javascript">var connection = new WebSocket('ws://localhost:12345'); connection.onopen = function () { connection.send('Ping'); // Send 'Ping' message to server }; // Log errors connection.onerror = function (error) { console.log('WebSocket Error ' + error); }; // Log messages from server connection.onmessage = function (e) { console.log('Server: ' + e.data); };</code>
Menyelesaikan masalah Isu Firefox
Berdasarkan mesej ralat anda, pelayan mungkin tidak boleh diakses di URL yang ditentukan. Semak perkara berikut:
Petua Tambahan
Atas ialah kandungan terperinci Persoalannya mungkin: Bagaimana untuk membuat pelayan WebSocket dalam PHP dengan kaedah alternatif kepada phpwebsocket?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!