TP6中GatewayWorker的用法

article/2025/8/15 7:28:52

一、参考网站

tp开发手册:https://www.kancloud.cn/manual/thinkphp6_0/1147857

workman与tp框架结合参考:http://doc2.workerman.net/work-with-other-frameworks.html

开发手册只介绍了Workman的使用方法,没有介绍GatewayWorker的使用方法,通过

composer require topthink/think-worker

安装了workman之后可以看到config目录下多出了gateway_worker.php、work.php、worker_server.php三个配置文件,

其中gateway_worker.php就是GatewayWorker的配置文件,这里主要是讲在TP6框架下怎么来使用他,其他两个文档有介绍。

二、使用步骤

1、自定义你的事件类文件

在你的应用app目录下新建一个http目录,目录下新建一个Events.php文件

引用http://doc2.workerman.net/getting-started.html的入门指引告诉你为什么这样做

业务开发的话,你真的只需要关注Events.php这一个文件就好了

2、初始化你的Events.php文件的内容

按下图方式顺序找到位于框架根目录->vendor->topthink->think-worker->src目录下的Events.php

打开文件ctrl+a,然后ctrl+c,直接全选复制,最后拷贝到你自定义的Events.php文件内,然后修改下面截图两处地方

保存之后你的自定义事件类文件内容就是这样的

<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2018 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------
// namespace think\worker; // 原文件的命名空间
namespace app\http; // 你的类文件的命名空间use GatewayWorker\Lib\Gateway;
use Workerman\Worker;
use think\worker\Application; // 特别注意:下方用到的Application属于think\work命名空间下的类,由于命名空间的更换,需要这样引入才能使用,否则会报错找不到这个类。/*** Worker 命令行服务类*/
class Events
{/*** onWorkerStart 事件回调* 当businessWorker进程启动时触发。每个进程生命周期内都只会触发一次** @access public* @param  \Workerman\Worker    $businessWorker* @return void*/public static function onWorkerStart(Worker $businessWorker){$app = new Application;$app->initialize();}/*** onConnect 事件回调* 当客户端连接上gateway进程时(TCP三次握手完毕时)触发** @access public* @param  int       $client_id* @return void*/public static function onConnect($client_id){Gateway::sendToCurrentClient("Your client_id is $client_id");}/*** onWebSocketConnect 事件回调* 当客户端连接上gateway完成websocket握手时触发** @param  integer  $client_id 断开连接的客户端client_id* @param  mixed    $data* @return void*/public static function onWebSocketConnect($client_id, $data){var_export($data);}/*** onMessage 事件回调* 当客户端发来数据(Gateway进程收到数据)后触发** @access public* @param  int       $client_id* @param  mixed     $data* @return void*/public static function onMessage($client_id, $data){Gateway::sendToAll($data);}/*** onClose 事件回调 当用户断开连接时触发的方法** @param  integer $client_id 断开连接的客户端client_id* @return void*/public static function onClose($client_id){GateWay::sendToAll("client[$client_id] logout\n");}/*** onWorkerStop 事件回调* 当businessWorker进程退出时触发。每个进程生命周期内都只会触发一次。** @param  \Workerman\Worker    $businessWorker* @return void*/public static function onWorkerStop(Worker $businessWorker){echo "WorkerStop\n";}
}

3、最后修改配置文件

修改config目录下gateway_worker.php文件如下

此处只需将“\think\worker\Events”修改为“app\http\Events”即可完成最后步骤,至此你就已经把GatewayWorker和TP6完美整合起来了,接下来就可以愉快的使用php think worker:gateway来启动我们的GatewayWorker了,具体的onWorkerStart、onConnect、onWebSocketConnect、onMessage、onClose、onWorkerStop事件你都可以在你自定义的Events.php业务类里随意操作了。

4、其他使用方式

以上是采用客户端与GatewayWorker直接双向通讯的方式完成业务通讯,当然你也可以采用官方推荐的GatewayClient的方式,具体使用方法就参考官网示例就行了:http://doc2.workerman.net/work-with-other-frameworks.html。

第一次发文,我也只是一个TP6初学者,如果有写得不对的地方,还请各位大佬指正,如果对您有用,请点个赞吧。

5、个人小程序展示

这个我自己做的一个个人小程序,有兴趣的扫来看一看哇。

 


http://chatgpt.dhexx.cn/article/a6J9TAjB.shtml

相关文章

tp5框架Fastadmin中的Log日志如何去用

首先fastadmin是基于tp5的框架进行开发,在我们使用fastadmin写好接口后,接口在测试时没有任何问题,当前端进行访问时却无法进行交互,这是就可以使用tp5框架自带的Log日志; 下面就为大家介绍Log的使用: use think\Log; 在你使用的php文件下引入Log日志。 Log的使用方法: 一…

TP框架如何开启log日志

1.日志的处理工作是由系统自动进行的&#xff0c;在开启日志记录的情况下&#xff0c;会记录下允许的日志级别的所有日志信息。 其中&#xff0c;为了性能考虑&#xff0c;SQL日志级别必须在调试模式开启下有效&#xff0c;否则就不会记录。 系统的日志记录由核心的Think\Log类…

tplink路由器设置网址方法

tplink路由器设置网址的方法很多的用户都不知道&#xff0c;其实这个路由器可以通过两种方式来进行设置&#xff0c;十分的方便&#xff0c;如果你还没有完成设置不妨来试一试。 tplink路由器设置网址&#xff1a; 电脑&#xff1a; 1、首先打开浏览器&#xff0c;输入“192…

tp5日志

日志记录和跟踪调试。由于日志记录了所有的运行错误&#xff0c;因此养成经常查看日志文件的习惯&#xff0c;可以避免和及早发现很多的错误隐患。日志还有其他作用&#xff0c;用于输出一些不方便显示的调试的信息。 可以给多应用&#xff0c;或者前后端&#xff0c;分别配置…

TP Link 路由器 设置

入手某型号的TP LINK 路由器一台。希望做些定制化的设置。记录一下。 1&#xff0c;光猫拨号改为路由器拨号 光猫的型号是吉比特某款&#xff0c;其地址是192.168.1.1&#xff0c;此光猫没有无线。所接的路由器地址是192.168.2.1。 1&#xff0c;先将光猫的设置全部备份。2种…

TP5.1使用日志

日志我们在线上项目调试bug的利器&#xff0c;所以我们需要掌握 日志要记录的是错误信息&#xff0c;所以只需要将测试错误改为你需要获取的错误信息即可 1.引入think\Log这个类 2.打开log文件

TPLinker

# 笔记 1、长文本划分为短文本的时候&#xff0c;是以模型底层分词的个数来判断的 2、输入的X必须转换成id&#xff0c;输入的Y也必须转换成id&#xff0c;这样X输入得到的结果P才能和Y做比对&#xff0c;所有的模型都是围绕这个根基做转换&#xff0c;确认好X和Y&#xff0c;把…

渗透工具TPLogScan:ThinkPHP3和5日志扫描工具,提供命令行版和BurpSuite插件版,尽可能发掘网站日志信息

Git地址&#xff1a; r3change/TPLogScan: ThinkPHP全日志扫描工具&#xff0c;命令行版和BurpSuite插件版 (github.com) ThinkPHP3和5日志扫描工具&#xff0c;提供命令行版和BurpSuite插件版&#xff0c;尽可能发掘网站日志信息 命令行版 安装 git clone https://github.c…

Cadence virtuos617安装教程

Cadence virtuos安装教程 所有安装文件可在如下地址下载 链接:https://pan.baidu.com/s/1lZdRtzO1vTMHp7fmLHWGjQ?pwd=svwi 提取码:svwi下载的文件放到共享目录下。关于共享目录的设置可查看百度;并命名为Linux_space,文件名更改为Cadence.如下图 连接网络 安装虚拟机工…

Cadence 16.6安装配置教程

这里使用的是吴川斌的阿狸狗安装&#xff0c;傻瓜式安装&#xff0c;非常方便快捷 Cadence SPB 16.6安装包下载 阿狸狗下载 视频教程 双击打开阿狸狗 开始安装 其他安装

LinuxCadence学习

Linux&Cadence学习 常用指令 ls&#xff1a;列出当前目录下的文件ll -a&#xff1a;列出所有文件&#xff0c;包括隐藏文件ll&#xff1a;显示所有属性vi xxx&#xff1a;编辑文本&#xff1b;insert按键进行修改&#xff1b;esc退出修改&#xff1b;:wq!保存修改chmod 7…

014 Cadence Virtuoso 教程

安装 安利一下公众号&#xff1a;鱼与渔大学生服务&#xff0c;参考一下里面的安装教程 基本教程 参考下面这个大学的教程 http://ee.usc.edu/~redekopp/ee209/virtuoso/setup/USCVLSI-VirtuosoTutorial.pdf 设计流程 反相器实例演示 虚拟机安装后界面 新建个工作目录&…

国内计算机博士去百度云,于博士Cadence视频教程60集全套百度网盘分享

于博士Cadence视频教程60集全套百度网盘分享 于博士Cadence视频教程60集全套百度网盘分享&#xff0c;拿来主义&#xff0c;拿去主义&#xff0c;不谢~~~老吴就是看于博士Cadence视频教程入的门&#xff0c;虽然于博士录这些视频时用的是 Cadence SPB 15.7&#xff0c;但是其中…

linux cadence教程 pdf,cadence入门基础篇

班主任的cadence软件 Username:eda Password:123456z l 用Virtuoso Schematic Editor工具设计原理图 启动Cadence 设计软件 在linux系统下右键NewTerminal icfb & (icfb stands for Integrated Circuit Front to Back design,后缀&的作用:表示后台运行) 关掉“What…

Cadence教程4——环形振荡器

请移步简书看本文内容 http://www.jianshu.com/p/b3591d197887 本次教程主要讲array和bus的用法。 英文原文在这里。 原理图 仍然直接从inverter这个项目复制过来 新建一个cellview 放置我们之前设计的反相器&#xff0c;注意这里有几种方法来放置一个阵列&#xff1a; 直…

【Cadence16.6】安装教程

初识安装包文件 我们cadence16.6的安装包是这样的&#xff0c;详细请去https://www.fanyedu.com/index/mulitcourse/video.html?id1008#1008观看。 首先我们打开这个文件夹&#xff1a; 里面有5个压缩文件 我们全部解压在当前文件夹 点击setup.exe进行按安装 License Manager…

cadence软件安装教程

Go to Setup, start installation of the license manager use “License manager” button NOTE: When asked for License File Location, CANCEL that dialog. Install Cadence SPB 16.6 use “Product Installation” button. 2a Install Hotfixs Copy \Cadence\ folder …

cadence17.2安装教程

安装前先关闭杀毒软件和360卫士&#xff0c;注意安装路径不能有中文&#xff0c;安装包路径也不要有中文。 试装系统&#xff1a;win10 64bit 安装包路径和安装路径最好都不要出现中文&#xff0c;一般选择默认安装在C盘。 Cadence Allegro 17.2试用阿狸狗进行安装&#xff0c;…

Cadence教程2——反相器原理图仿真以及版图绘制

这一篇主要讲如何用cadence仿真一个简单的反相器&#xff0c;并画出版图的全部流程。工艺使用ncsu-free-cdk。 英文原文在此。 原理图绘制 首先建立library 新建原理图 放置元件&#xff0c;&#xff08;快捷键为i&#xff09; 再放置好pin&#xff0c;&#xff08;快捷键为…

Cadence教程(嘉立创封装导入到orcad)

目录 1.背景 2. 物料确定 3. 下载封装并从ad导出合适封装 3.创建新cadence文件并导入 4.导入ad文件 5.修改dra和pad文件&#xff08;选做&#xff09; 6.保存并修改orcad 1.背景 听业内人士说Cadence在制作高端PCB的设计领域有举足轻重的地位&#xff0c;那就学学吧。说…