Comment créer des serveurs Websocket en PHP
Contexte
Les WebSockets fournissent un duplex intégral , canal de communication en temps réel entre un client et un serveur via une connexion HTTP existante. En PHP, plusieurs frameworks aident à la création de serveur WebSocket.
Code PHPWebSocket
Vous avez évoqué des difficultés de mise à jour de la bibliothèque phpwebsocket. Même s’il était autrefois populaire, son âge peut présenter des problèmes. Voici une méthode alternative :
Code PHP pour le serveur
<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>
Code JavaScript pour le client
<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>
Dépannage du problème Firefox
En fonction de votre message d'erreur, le serveur peut ne pas être accessible à l'URL spécifiée. Vérifiez les éléments suivants :
Conseils supplémentaires
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!