如何在PHP 中建立Websocket 伺服器
背景
Web
背景Web 您提到了更新 phpwebsocket 函式庫的困難。雖然它曾經很流行,但它的年齡可能會帶來問題。這是另一種方法: 伺服器的PHP 程式碼 客戶端的JavaScript 程式碼 確保伺服器在 localhost:12345 上運作。 <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 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>
使用 PHP.net 文件來了解 WebSocket 函數。 請參閱WebSocket 草稿以了解技術細節。 正確處理訊息編碼和解碼。 考慮使用更新的函式庫,例如 ReactPHP WebSocket 或 CodeIgniter WebSocket。
以上是問題可能是:如何使用 phpwebsocket 的替代方法在 PHP 中建立 WebSocket 伺服器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!