好的,下面我为您介绍使用ThinkPHP和Swoole开发聊天应用的实例。
- 环境搭建
首先需要安装PHP和Swoole扩展,可以使用以下命令:
yum install php php-devel php-pear
pecl install swoole
- 新建项目
使用composer新建一个ThinkPHP项目:
composer create-project topthink/think chat
- 添加Swoole支持
在config/app.php中添加以下代码:
'swoole' => ['enable' => true,'server' => ['host' => '127.0.0.1','port' => 9501,'mode' => SWOOLE_PROCESS,'sock_type' => SWOOLE_SOCK_TCP,],
],
这里配置了一个TCP服务器,监听127.0.0.1:9501端口。
- 编写控制器
在app/index/controller目录下创建Chat.php控制器,编写以下代码:
namespace app\index\controller;
use think\swoole\WebSocket;
class Chat extends WebSocket
{public function onMessage($server, $frame){$data = json_decode($frame->data, true);$this->sendToAll($data['msg']);}
}
这里使用WebSocket类,并重写了onMessage方法,接收客户端发送的消息,并通过sendToAll方法将消息广播给所有客户端。
- 编写前端页面
在public/static目录下创建chat.html文件,编写以下代码:
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>聊天室</title><script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<body><div id="message"></div><div><input type="text" id="input"><button onclick="send()">发送</button></div><script>var ws = new WebSocket("ws://127.0.0.1:9501/");ws.onopen = function(){console.log("连接成功");}ws.onmessage = function(event){console.log(event.data);$("#message").append("<p>" + event.data + "</p>");}function send(){var msg = $("#input").val();ws.send(JSON.stringify({msg: msg}));$("#input").val("");}</script>
</body>
</html>
这里使用了WebSocket的API,向服务器发送消息并接收服务器的广播消息。
- 运行聊天应用
在命令行中运行以下命令:
php think swoole start
打开浏览器,访问http://localhost/chat.html,即可使用聊天应用。
以上就是使用ThinkPHP和Swoole开发聊天应用的实例,希望对您有帮助。
好的,下面我为您介绍使用ThinkPHP和Swoole开发聊天应用的实例。
- 环境搭建
首先需要安装PHP和Swoole扩展,可以使用以下命令:
yum install php php-devel php-pear
pecl install swoole
- 新建项目
使用composer新建一个ThinkPHP项目:
composer create-project topthink/think chat
- 添加Swoole支持
在config/app.php中添加以下代码:
'swoole' => ['enable' => true,'server' => ['host' => '127.0.0.1','port' => 9501,'mode' => SWOOLE_PROCESS,'sock_type' => SWOOLE_SOCK_TCP,],
],
这里配置了一个TCP服务器,监听127.0.0.1:9501端口。
- 编写控制器
在app/index/controller目录下创建Chat.php控制器,编写以下代码:
namespace app\index\controller;
use think\swoole\WebSocket;
class Chat extends WebSocket
{public function onMessage($server, $frame){$data = json_decode($frame->data, true);$this->sendToAll($data['msg']);}
}
这里使用WebSocket类,并重写了onMessage方法,接收客户端发送的消息,并通过sendToAll方法将消息广播给所有客户端。
- 编写前端页面
在public/static目录下创建chat.html文件,编写以下代码:
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>聊天室</title><script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<body><div id="message"></div><div><input type="text" id="input"><button onclick="send()">发送</button></div><script>var ws = new WebSocket("ws://127.0.0.1:9501/");ws.onopen = function(){console.log("连接成功");}ws.onmessage = function(event){console.log(event.data);$("#message").append("<p>" + event.data + "</p>");}function send(){var msg = $("#input").val();ws.send(JSON.stringify({msg: msg}));$("#input").val("");}</script>
</body>
</html>
这里使用了WebSocket的API,向服务器发送消息并接收服务器的广播消息。
- 运行聊天应用
在命令行中运行以下命令:
php think swoole start
打开浏览器,访问http://localhost/chat.html,即可使用聊天应用。
以上就是使用ThinkPHP和Swoole开发聊天应用的实例,希望对您有帮助。