如何在 PHP 中创建 Websocket 服务器
背景
WebSocket 提供全双工,客户端和服务器之间通过现有 HTTP 连接的实时通信通道。在 PHP 中,有多个框架协助创建 WebSocket 服务器。
PHPWebSocket 代码
您提到了更新 phpwebsocket 库的困难。虽然它曾经很流行,但它的年龄可能会带来问题。这是另一种方法:
服务器的 PHP 代码
<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>
客户端的 JavaScript 代码
<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>
Firefox 问题疑难解答
根据您的错误消息,可能无法通过指定的 URL 访问服务器。检查以下内容:
其他提示
以上是问题可能是:如何使用 phpwebsocket 的替代方法在 PHP 中创建 WebSocket 服务器?的详细内容。更多信息请关注PHP中文网其他相关文章!