1.安装
pecl install swoole
extension=swoole.so // 初始化文件中需要包含此句,以启用swoole
运行以上代码安装Swoole, 安装完成后,你需要在 PHP 配置文件(如 php.ini)中添加或启用 Swoole 扩展:
若你与作者一样使用宝塔,那么在php管理中即可无脑安装,在phpinfo中即可查看是否安装完成并支持,(使用宝塔安装的swoole无需动php.ini)
2.编写服务端
<?php
// 创建 WebSocket 服务器对象,监听 0.0.0.0:9501 端口
$server = new Swoole\WebSocket\Server("0.0.0.0", 9501);
// 监听 WebSocket 连接打开事件
$server->on('open', function (Swoole\WebSocket\Server $server, $request) {
echo "WebSocket 连接打开: {$request->fd}\n";
});
// 监听 WebSocket 消息事件
$server->on('message', function (Swoole\WebSocket\Server $server, $frame) {
echo "收到消息: {$frame->data}\n";
// 回复客户端消息
$server->push($frame->fd, "Hello, {$frame->data}!");
});
// 监听 WebSocket 连接关闭事件
$server->on('close', function ($ser, $fd) {
echo "连接关闭: {$fd}\n";
});
// 启动服务器
$server->start();
保存文件命名为 websocket_server.php,并执行
php websocket_server.php
3.客户端连接
<!DOCTYPE html>
<html>
<head>
<title>WebSocket Client</title>
<script>
var ws = new WebSocket("ws://localhost:9501");
ws.onopen = function(event) {
console.log("WebSocket 连接已打开");
ws.send("Hello, WebSocket Server!");
};
ws.onmessage = function(event) {
console.log("收到服务器消息: " + event.data);
};
ws.onclose = function(event) {
console.log("WebSocket 连接已关闭");
};
</script>
</head>
<body>
<h1>WebSocket Client</h1>
</body>
</html>
快去试试吧,祝你好运