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官方手册》
466 0
|
NoSQL 关系型数据库 Redis
Docker的通俗理解和通过宿主机端口访问Redis容器的实例
本文目标:引导初学者入门Docker,理解镜像、容器和宿主机概念,学习常用Docker命令,特别是如何创建并从Redis容器通过宿主机端口访问。 关键点: - Docker核心:镜像(类)、容器(实例)、宿主机(运行环境)。 - `docker pull` 拉取镜像,如 `redis:3.0`。 - `docker run -d --name` 后台运行容器,如 `my-redis`。 - `-p` 参数做端口映射,如 `6379:6379`。 - `docker exec -it` 交互式进入容器,如 `bash` 或执行命令。
475 4
|
数据采集 数据处理 计算机视觉
4.3 图像分类ResNet实战:眼疾识别
这篇文章介绍了使用ResNet网络进行眼疾识别的实战流程,涵盖了计算机视觉任务研发的全流程,包括数据处理、数据预处理、数据读取器的定义,以及如何利用iChallenge-PM数据集进行模型训练和评估。
|
小程序 前端开发 中间件
ThinkPHP 配置跨域请求,使用TP的内置跨域类配置,小程序和web网页跨域请求的区别及格式说明
本文介绍了如何在ThinkPHP框架中配置跨域请求,使用了TP内置的跨域类`\think\middleware\AllowCrossDomain::class`。文章还讨论了小程序和web网页在跨域请求格式上的区别,并提供了解决方案,包括修改跨域中间件源码以支持`Origin`和`token`。此外,还介绍了微信小程序跨域请求的示例和web网页前端发送Axios跨域请求的请求拦截器配置。
ThinkPHP 配置跨域请求,使用TP的内置跨域类配置,小程序和web网页跨域请求的区别及格式说明
ThinkPHP 多应用配置,及不同域名访问不同应用的配置【详解】
本文详解了在ThinkPHP框架中配置多应用的方法,包括安装扩展、删除默认controller文件夹、创建多应用、修改配置文件以启用多应用、测试访问以及如何配置不同域名访问不同应用的步骤。
ThinkPHP 多应用配置,及不同域名访问不同应用的配置【详解】
|
网络协议 前端开发 关系型数据库
【workerman】uniapp+thinkPHP5使用GatewayWorker实现实时通讯
上述为之前给公司做内部通讯软件时个人整理内容,水平有限,如有错误之处,望各位园友不吝赐教!如果觉得不错,请点击推荐和关注!谢谢~๑•́₃•̀๑ [鲜花][鲜花][鲜花]
409 0
|
资源调度 JavaScript Windows
'vue-cli-service' 不是内部或外部命令,也不是可运行的程序问题解决
【5月更文挑战第7天】'vue-cli-service' 不是内部或外部命令,也不是可运行的程序问题解决
19517 3
|
程序员
程序员必知:微信报错40029微信模板推送消息报错问题
程序员必知:微信报错40029微信模板推送消息报错问题
524 0
|
JavaScript PHP UED
【PHP开发专栏】PHP与WebSocket实时通信
【4月更文挑战第30天】本文介绍了PHP实现WebSocket实时通信的原理、使用方法和实际案例。WebSocket是基于HTTP的全双工通信协议,PHP 5.4以上版本支持WebSocket,可通过内置函数或第三方库如Socket.io、PHP-WebSocket来实现。文章详细展示了创建WebSocket服务器和客户端的PHP代码示例,并提及在PHP中使用Socket.io库进行实时通信。
672 2
|
搜索推荐 算法 PHP
详尽分享记6种php加密解密方法
详尽分享记6种php加密解密方法
933 0