thinkPHP6接入workman

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

上篇介绍了workman实现websocket功能链接https://blog.csdn.net/weixin_38155824/article/details/128952037
这篇就介绍如何在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);
        };

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

    }
}

然后再执行一下命令php think chat
输出
在这里插入图片描述

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: php

“thinkPHP6接入workman” 的相关文章