上篇介绍了workman实现websocket功能(链接:https://blog.csdn.net/weixin_38155824/article/details/128952037)
后传:解决workman部署到Linux环境无法启动和连接的问题(https://blog.csdn.net/weixin_38155824/article/details/129004050)
这篇就介绍如何在thinkPHP6项目中接入workman。

利用TP6的自定义命令开启websocket服务

查看TP6手册:命令行=>自定义命令

第一步,执行以下命令,就会会生成一个app\command\Chat命令行指令类.

php think make:command Chat startChat

第二步,配置config/console.php文件

<?php
return ['commands' => ['chat' => 'app\command\Chat',]
];

第三步,测试-命令帮助-命令行下运行

php think

输出

执行

php think chat

自定义命令搞定后,就可以引入workman了

在项目根目录下通过comoser安装workman:

composer require workerman/workerman

然后将上一篇的workman开启wetsocket服务的代码复制到新创建的自定义命令类Chat.php中

(划重点:要引入vendor目录下的autoload.php,路径要写对)
(划重点:要引入vendor目录下的autoload.php,路径要写对)
(划重点:要引入vendor目录下的autoload.php,路径要写对)

<?php
declare (strict_types = 1);namespace app\command;use think\console\Command;
use think\console\Input;
use think\console\input\Argument;
use think\console\input\Option;
use think\console\Output;
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require __DIR__ . '/../../vendor/autoload.php';class Chat extends Command
{protected function configure(){// 指令配置$this->setName('startChat')->setDescription('the startChat command');}protected function execute(Input $input, Output $output){// 指令输出$output->writeln('startChat');//启动workman-websocket服务// 注意:这里与上个例子不同,使用的是websocket协议$ws_worker = new Worker("websocket://0.0.0.0:2000");// 启动4个进程对外提供服务$ws_worker->count = 4;// 当收到客户端发来的数据后返回hello $data给客户端$ws_worker->onMessage = function(TcpConnection $connection, $data){//在控制台打印客户端发送过来的消息var_dump($data);var_export($data);// 向客户端发送hello $data$connection->send('hello ' . $data);};// 运行workerWorker::runAll();}
}

然后再执行一下命令:php think chat
输出:

thinkPHP6接入workman相关推荐

  1. thinkphp6项目的支付宝手机网页支付接入

    搞了两天,踩了一大堆坑,终于对接好支付宝的支付了,下面记录 一下最近对接的心得. 先说效果,我建立了一个控制器,方法pay,传入订单ID,就可以支付这个订单了,回调建立方法,notify_url,有了 ...

  2. tp6/thinkphp6如何接入微信授权openid

    默认配置的appid 和 secret 前端传来的code进行request请求 //获取微信用户授权信息的open_idpublic function getOpenId($id='1',$code ...

  3. 【汇总】ThinkPHP6入门手册

    阿里云SMS发送短信验证码 - PHP接入手机验证码服务 - ThinkPHP6 https://blog.csdn.net/qq285744011/article/details/127798837 ...

  4. ThinkPHP6使用七牛云存储,不改代码,改下配置就上七牛

    ThinkPHP6使用七牛云存储,不改代码,改下配置就上七牛 介绍 ThinkPHP6中使用flysystem作为文件处理类,flysystem是一个php文件处理库,可以使用相同的接口连接本地,ft ...

  5. php宝塔搭建saas平台多租户多应用多终端系统ThinkPHP6框架

    大家好啊,我是测评君,欢迎来到web测评. 有个朋友问我,有没有SaaS相关的系统,最好是php开发的,今天逛了开源社区,刚好看到这套挺不错的,本期就给大家分享这套bwsaas多端SAAS平台运营系统 ...

  6. Bwsaas框架基于Thinkphp6.x开发的微信公众号,小程序,app,H5等多端打通的框架

    完善bwsaas框架并开源原生小程序商业版本前端应用 新增 1插件安装升级,安装平台系统插件(type=admin_system)时可同时添加多个角色组(平台系统功能+租户系统功能),需要在group ...

  7. Android 接入Realm并使用

    今天看自己写的github demo 看到Realm 这里在回顾下 github 搜索Realm 我们可以选择java 可以看到Realm 介绍: Realm是直接在手机,平板电脑或可穿戴设备内部运行 ...

  8. tp5+workman

    tp5+workman composer require topthink/think-worker=1.0.*   可能会存在版本问题 转载于:https://www.cnblogs.com/wxt ...

  9. micropython mqtt_MicroPython使用MQTT协议接入OneNET云平台

    MicroPython使用MQTT协议接入OneNET云平台 [复制链接] 本帖最后由 hanyeguxingwo 于 2016-11-22 11:33 编辑 之前使用Arduino+ESP8266使 ...

最新文章

  1. 2021下半年,我只想用Python搞钱!
  2. post请求与get请求的差别
  3. 【收藏】sonar-scanner扫描代码出错 SonarQube svn: E170001
  4. php 写 mysql 事件_PHP日歷,包含來自MySQL數據庫的重復事件
  5. 堆叠自编码器中的微调解释_25种深刻漫画中的编码解释
  6. 杭电1422 重温世界杯
  7. akka入门书籍的示例代码
  8. 【SpringMVC】@Controller 和 @RestController 区别
  9. anaconda r 语言_anaconda 配置R语言
  10. python flink kafka_Flink Kafka 端到端 Exactly-Once 分析
  11. 简单屏幕录制截屏工具
  12. 第十一次 Java作业
  13. Macbook Pro 外接显示器关闭內建屏幕的方法,开盖状态
  14. fullpage得基本使用
  15. 微信分享到朋友圈的链接,内容打开正常,但在微信中分享时封面缩略图图像和标题显示不出来?
  16. tomcat下载、安装、配置(新手教程墨迹版)
  17. turtle库的一些基本函数
  18. 金刚菩提子开裂自动修复此计算机,金刚菩提子开裂怎么办 金刚菩提子为什么会开裂...
  19. oracle表数据恢复为1小时之前,恢复一个小时前数据
  20. 编译原理学习笔记(七)~LR(0)分析

热门文章

  1. FL Studio21正式简体中文版支持苹果M2处理器
  2. 2015年上半年最受欢迎的应用和游戏
  3. 解析iMindMap素描工具
  4. Agora RTM云信令(原实时消息)示例跑通
  5. Python中类的约束方法
  6. vue项目添加拖拽功能
  7. seo提交工具_呼伦贝尔网站建设_5118站长数据分析平台非常适合SEO站长做数据统计...
  8. 人脸识别地铁闸机将在北京推广
  9. java关于请求参数转Map的记录
  10. 用微信小程序开店之八——小程序组件4:“表单”(2)