WebSocket est une technologie qui permet une communication en duplex intégral entre un client Web et un serveur Web. Cela permet le transfert de données en temps réel, ce qui le rend idéal pour des applications telles que les jeux en ligne, la messagerie instantanée et le streaming de données financières.
La bibliothèque phpwebsockets mentionnée dans la question est en effet obsolète et ne prend pas en charge le dernier protocole WebSocket. De plus, sa mise à jour peut ne pas fonctionner comme prévu.
Ce qui suit est un exemple d'extrait de code PHP pour un simple serveur WebSocket :
<?php $master = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_set_option($master, SOL_SOCKET, SO_REUSEADDR, 1); socket_bind($master, 'localhost', 12345); socket_listen($master, 20); $sockets = array($master); $users = array(); $debug = false; while (true) { $changed = $sockets; socket_select($changed, $write = NULL, $except = NULL, NULL); foreach ($changed as $socket) { if ($socket == $master) { $client = socket_accept($master); if ($client < 0) { console("socket_accept() failed"); continue; } else { connect($client); } } else { $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); } } } } }
Ce code skeleton illustre les étapes décrites ci-dessus, notamment la création et l'écoute sur le socket maître, l'acceptation des connexions entrantes, l'exécution de la négociation WebSocket et le traitement des messages client. Le script complet doit être complété par les fonctions restantes décrites précédemment, telles que connect(),connect() et process().
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!