Thinkphp5.0框架如何使用workerman,这个官方手册中同样给出了示例
请移步《thinkphp5.0官方手册》
但是,我觉得他这个示例吧给的可能是不太详细,不经常看可能是看不懂,我在这里大概补充一下,写一个图文示例:
1 :添加Worker.php文件
注:这个文件,其实就是你平时用的控制器,因此添加的位置,看你个人喜好,能访问到就可以,我这里是添加到了application/api/controller中,如下图所示:
内容如下:
php
复制代码
<?php /** * auther:camellia * date:20200815 * email:805795955@qq.com */ namespace app\api\controller; use think\Controller; use think\Request;//使用request对象 use think\Db;//引入数据库操作类 use think\Session; //使用session驱动 use think\worker\Server; class Worker extends Server { protected $socket = 'websocket://127.0.0.1:8082'; /** * 收到信息 * @param $connection * @param $data */ public function onMessage($connection, $data) { $connection->send('我收到你的信息了'); } /** * 当连接建立时触发的回调函数 * @param $connection */ public function onConnect($connection) { } /** * 当连接断开时触发的回调函数 * @param $connection */ public function onClose($connection) { } /** * 当客户端的连接上发生错误时触发 * @param $connection * @param $code * @param $msg */ public function onError($connection, $code, $msg) { echo "error $code $msg\n"; } /** * 每个进程启动 * @param $worker */ public function onWorkerStart($worker) { } }
2:在项目根目录下添加启动文件 worker.php (注意:加载框架引导文件)
文件放置位置如下图所示:
内容如下:
php
复制代码
#!/usr/bin/env php <?php define('APP_PATH', __DIR__ . '/application/'); define('BIND_MODULE', 'api/Worker'); // 加载框架引导文件 require __DIR__ . '/thinkphp/start.php';
三:启动workerman服务
命令行进入server.php所在目录
执行:
vbscript
复制代码
php server.php start #注意大小写,注意启动文件的名称是否是server.php
执行成功如下图所示:
下边大概列举一下workerman的常用命令:
bash
复制代码
php worker.php status #可以查看当前进程和服务器运行状态 php worker.php connections #可以查看当前连接状态 php worker.php reload #平滑重启服务器(用户不掉线) php worker.php restart #强制重启服务器(所有用户都会掉线) php worker.php stop #停止服务器 php worker.php start #以调试方式启动服务器(debug状态,log将直接打印到终端) php worker.php start -d #以守护进程方式启动服务器(产品状态,log将被写入文件)
了解更多,请移步《workerman官方手册》
有好的建议,请在下方输入你的评论。
欢迎访问个人博客 guanchao.site
欢迎访问我的小程序:打开微信->发现->小程序->搜索“时间里的”