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官方手册》
531 0
|
11月前
|
SQL 关系型数据库 MySQL
宝塔面板之MySQL无法远程连接
宝塔面板默认安装的MySQL,root用户无远程权限。本文详细介绍如何使root支持远程连接:确保3306端口已放行,通过SSH登录服务器并进入MySQL,修改root用户的host为&#39;%&#39;,最后刷新权限。具体步骤包括使用SQL命令修改用户主机设置,并确保网络配置正确,从而实现root的远程访问。
1988 35
|
前端开发 IDE 数据库连接
ThinkPHP6 模型层的模型属性,表映射关系,以及如何在控制层中使用模型层和模型层中的简单CRUD
本文详细介绍了ThinkPHP6中模型层的使用,包括模型属性设置、表映射关系、以及如何在控制层中使用模型层进行CRUD操作。
ThinkPHP6 模型层的模型属性,表映射关系,以及如何在控制层中使用模型层和模型层中的简单CRUD
|
PHP
php 使用phpize报错Cannot find config.m4. Make sure that you run ‘/usr/bin/phpize‘ in the top l
php 使用phpize报错Cannot find config.m4. Make sure that you run ‘/usr/bin/phpize‘ in the top l
719 1
|
前端开发 JavaScript
使用 JavaScript 获取 URL 参数的详细指南
【2月更文挑战第26天】
14771 2
使用 JavaScript 获取 URL 参数的详细指南
|
网络协议 前端开发 关系型数据库
【workerman】uniapp+thinkPHP5使用GatewayWorker实现实时通讯
上述为之前给公司做内部通讯软件时个人整理内容,水平有限,如有错误之处,望各位园友不吝赐教!如果觉得不错,请点击推荐和关注!谢谢~๑•́₃•̀๑ [鲜花][鲜花][鲜花]
590 0
|
资源调度 JavaScript Windows
'vue-cli-service' 不是内部或外部命令,也不是可运行的程序问题解决
【5月更文挑战第7天】'vue-cli-service' 不是内部或外部命令,也不是可运行的程序问题解决
20264 3
|
程序员
程序员必知:微信报错40029微信模板推送消息报错问题
程序员必知:微信报错40029微信模板推送消息报错问题
608 0
|
JavaScript
必知的技术知识:js保留二位小数
必知的技术知识:js保留二位小数
1049 0
|
PHP
宝塔安装workerman报错(已解决)
宝塔安装workerman报错(已解决)
389 1
宝塔安装workerman报错(已解决)