thinkPHP6接入workman

这篇具有很好参考价值的文章主要介绍了thinkPHP6接入workman。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

上篇介绍了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

输出
thinkPHP6接入workman,websocket,thinkPHP,PHP,php,websocket,开发语言
执行

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);
        };

        // 运行worker
        Worker::runAll();

    }
}

然后再执行一下命令:php think chat
输出:
thinkPHP6接入workman,websocket,thinkPHP,PHP,php,websocket,开发语言文章来源地址https://www.toymoban.com/news/detail-607986.html

到了这里,关于thinkPHP6接入workman的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • thinkphp6和thinkphp5有什么区别

    Thinkphp6.0完全开发手册 采用PHP7强类型(严格模式) tp5 环境要求PHP = 5.4.0 ThinkPHP6.0的环境要求 PHP = 7.2.5 6.0版本开始,必须通过Composer方式安装和更新,所以你无法通过Git下载安装。 支持更多的PSR规范 V6.0.10版本开始 支持 psr7 response 多应用支持 tp5默认使用多应用模式部署 tp6 安

    2024年02月06日
    浏览(56)
  • thinkphp6-配置设置与获取,Thinkphp6自定义配置文件以及调用(config文件夹下的配置)

    环境变量 设置环境变量 /.env [DATABASE] USERNAME = root PASSWORD = 123456 获取环境变量 app/controller/Index.php 访问测试 http://codeit.org.cn/index {“username”:“root”,“password”:“123456”} 1.在thinkphpconfig下新建一个test.php配置文件 .test.php文件内容 调用test.php配置文件 配置 配置设置 config/app.

    2024年02月13日
    浏览(51)
  • ThinkPHP6中使用GatewayWorker

    首先是先安装 下载demo 服务器开通TCP端口 8282 、 1238 将 ApplicationsYourApp 目录随便放ThinkPHP6的哪个位置,我这里放在了 appgatewayws 目录中 配置 composer.json 保存后执行 composer dumpautoload 更新 将 Events.php 、 start_businessworker.php 、 start_gateway.php 和 start_register.php 文件中的 require_once

    2024年02月22日
    浏览(43)
  • ThinkPHP6.0 链式SQL语句

    查询单个数据 查询结果集(查询结果返回多条数据的意思) ​ 查询一个字段 ​ 查询一列 添加数据 修改数据 删除数据 根据主键删除 ​ 条件删除 ​ 查询数据 格式 where(\\\'字段名\\\',\\\'查询表达式\\\',\\\'查询条件\\\'); 模糊查询 区间查询 IN查询 Not Null Null 链式操作示例 field操作(输出选择

    2024年02月11日
    浏览(57)
  • thinkphp6 动态开启debug模式

    1、找到config/app.php   2、自定义开启debug参数名称:示例参数为debug,可以根据自己项目情况自定义  3、必须同时设置App::debug 和 Env::set(\\\'APP_DEBUG\\\')

    2024年02月07日
    浏览(47)
  • Thinkphp6使用RabbitMQ消息队列

    Thinkphp6连接使用RabbitMQ(不止tp6,其他框架对应改下也一样),使用Docker部署RabbitMQ,在上一篇已经讲了-传送门-。 开始前先进入RabbitMQ的web管理界面,选择Queues菜单,点击底部的Add a new queue,新建一个test的队列。 安装thinkphp6框架 安装workerman扩展 安装rabbitmq扩展 生产者 在a

    2023年04月23日
    浏览(75)
  • Thinkphp6 如何 生成二维码

    来自:https://www.is5.me/notes/php/633.html

    2024年02月11日
    浏览(43)
  • ThinkPHP6之数据库操作上

    注意,tp6在进行语法学习的时候都是在app/index.php中写代码的,代码写在index函数下面,而且 tp6自带的文件都是由自动加载器的,不需要包含autoload.php文件 要对数据库进行操作,要修改两个地方,一个数.env文件,一个是config/database.php文件 config/database.php connections里面的一个子

    2024年02月01日
    浏览(83)
  • thinkphp6入门(23)-- 如何导入excel

    1. 安装phpexcel 2. 前端 3. 后端 注:现在主要使用phpoffice/phpspreadsheet库,phpoffice/phpexcel已经不再维护,但本文由于环境无法更新,所以就安装了phpoffice/phpexcel。基本操作一样。 参考:https://www.tpxhm.com/fdetail/725.html 注: 一、在ubuntu环境下提示 Class \\\'ZipArchive\\\' not found  查看对应的

    2024年04月14日
    浏览(39)
  • ThinkPHP6.0+ 使用Redis 原始用法

    composer 安装 predis/predis 依赖,或者安装php_redis.dll的扩展。 我这里选择的是predis/predis 依赖。 进入config/cache.php 配置添加redis缓存支持 示例: 页面测试代码 效果 redis 高级用法 在php 原生中redis 的使用是 thinkephp 中要使用php redis 的扩展方法。则需使用 handler() ; 代码示例 根据菜

    2024年02月12日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包