workman(三)thinkphp5.0使用workerman

简介: Thinkphp5.0框架如何使用workerman,这个官方手册中同样给出了示例请移步《thinkphp5.0官方手册》

Thinkphp5.0框架如何使用workerman,这个官方手册中同样给出了示例

请移步《thinkphp5.0官方手册

但是,我觉得他这个示例吧给的可能是不太详细,不经常看可能是看不懂,我在这里大概补充一下,写一个图文示例:

1 :添加Worker.php文件

注:这个文件,其实就是你平时用的控制器,因此添加的位置,看你个人喜好,能访问到就可以,我这里是添加到了application/api/controller中,如下图所示:

image.png

内容如下:

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 (注意:加载框架引导文件)

文件放置位置如下图所示:

image.png

内容如下:

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

执行成功如下图所示:

image.png

下边大概列举一下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

欢迎访问我的小程序:打开微信->发现->小程序->搜索“时间里的”

目录
相关文章
|
小程序 Shell Linux
workman(二)thinkphp5.0安装websocket插件workerman
首先说明一下我使用的PHP框架是thinkphp5.0。 当然,workerman这个插件不是只有thinkphp5.0可以使用。 具体的安装方法,thinkphp5.0的官方手册中是给出了明确的说明 请移步《thinkphp5.0官方手册》
289 0
|
4月前
|
开发框架 安全 PHP
ThinkPHP和Laravel
【8月更文挑战第23天】ThinkPHP和Laravel
113 4
|
4月前
|
缓存 自然语言处理 JavaScript
Thinkphp6安装
Thinkphp6安装
57 0
|
5月前
|
网络协议 前端开发 关系型数据库
【workerman】uniapp+thinkPHP5使用GatewayWorker实现实时通讯
上述为之前给公司做内部通讯软件时个人整理内容,水平有限,如有错误之处,望各位园友不吝赐教!如果觉得不错,请点击推荐和关注!谢谢~๑•́₃•̀๑ [鲜花][鲜花][鲜花]
127 0
|
Dart 前端开发 JavaScript
swoole(一)laravel8配置使用swoole(1)
然后在服务器使用命令行执行 复制代码
365 0
|
前端开发 小程序 JavaScript
swoole(一)laravel8配置使用swoole(3)
Laravel-swoole的优势就是将swoole插件集成至laravel-s插件中,当前laravel-s插件启动的时候,同时持久化的启动了swoole,不需要我们再服务器端再启动一次swoole。
163 0
|
前端开发 应用服务中间件 网络安全
swoole(一)laravel8配置使用swoole(2)
将上边我使用xxx代替的部分改成你自己的信息。 特别说明一下:我这里使用了ssl证书,如果您没有相关的配置,把https那部分换掉就好。 具体的配置含义,请参考官方文档:
115 0
|
缓存 网络协议 NoSQL
Laravel如何优雅的使用Swoole
Laravel如何优雅的使用Swoole
299 0
|
安全 前端开发 关系型数据库
PHP:ThinkPHP5.0下载安装和各种配置
PHP:ThinkPHP5.0下载安装和各种配置
911 0
|
PHP
thinkphp5整合workerman,tp5整合workerman
thinkphp5整合workerman,tp5整合workerman
216 0