thinkphp6 workerman无法使用框架Db/model等类库方法解决方案

本文主要是介绍thinkphp6 workerman无法使用框架Db/model等类库方法解决方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

thinkphp6 workerman无法使用框架Db/model相关操作解决

  1. 执行安装相关扩展
    composer require webman/gateway-worker
  2. 引入成功后编辑服务类文件,直接展示代码
<?phpnamespace app\server\controller;use GatewayWorker\BusinessWorker;
use GatewayWorker\Gateway;
use GatewayWorker\Register;
use Workerman\Worker;class SocketServe
{public function __construct(){$this->start_register();$this->start_gateway();$this->start_businessworker();// 运行所有服务Worker::runAll();}public function start_register(){// register 必须是text协议,切记不能将register端口开放给外网$register = new Register('text://127.0.0.1:1238');}public function start_gateway(){// gateway 进程,这里使用Text协议,可以用telnet测试
//        $gateway = new Gateway("tcp://0.0.0.0:8282");$gateway = new Gateway("websocket://0.0.0.0:8282");// gateway名称,status方便查看$gateway->name = 'YourAppGateway';// gateway进程数,一般设置2个就足够$gateway->count = 2;// 本机ip,分布式部署时使用内网ip$gateway->lanIp = '127.0.0.1';// 内部通讯起始端口,假如$gateway->count=2,起始端口为2900// 则一般会使用2900 2901 2个端口作为内部通讯端口$gateway->startPort = 2900;// 服务注册地址$gateway->registerAddress = '127.0.0.1:1238';// 心跳间隔$gateway->pingInterval = 20;$gateway->pingNotResponseLimit = 0;// 心跳数据$gateway->pingData = '接受心跳';}public function start_businessworker(){$worker = new BusinessWorker();// worker名称$worker->name = 'YourAppBusinessWorker';// bussinessWorker进程数量$worker->count = 4;// 服务注册地址$worker->registerAddress = '127.0.0.1:1238';//设置处理业务的类,此处制定Events的命名空间$worker->eventHandler = 'app\server\controller\Even';}}
  1. 业务处理代码(测试使用)
<?phpnamespace app\server\controller;use GatewayWorker\Lib\Gateway;class Even
{public static function onWebSocketConnect($client_id, $data){var_export($data);if (!isset($data['get']['token'])) {Gateway::closeClient($client_id);}}// 当有客户端连接时,将client_id返回,让mvc框架判断当前uid并执行绑定public static function onConnect($client_id){Gateway::sendToCurrentClient("Your client_id is $client_id");}// GatewayWorker建议不做任何业务逻辑,onMessage留空即可public static function onMessage($client_id, $message){$name = \think\facade\Db::table('user')->save(['name'=>$message]);// 群聊,转发请求给其它所有的客户端return GateWay::sendToAll($message);}
}
  1. 在根目录创建启动文件
<?php
// [ 应用入口文件 ]
namespace think;require __DIR__ . '/../vendor/autoload.php';//加载框架并初始化应用(这样才能直接使用框架自带的一些类库方法)
$http = (new App())->initialize()->make('app\server\controller\SocketServe');
  1. 启动服务
    php serve.php start

启动成功

服务启动成功如图所示

结束 测试一切正常

这篇关于thinkphp6 workerman无法使用框架Db/model等类库方法解决方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/947859

相关文章

MySQL 中的 JSON 查询案例详解

《MySQL中的JSON查询案例详解》:本文主要介绍MySQL的JSON查询的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 的 jsON 路径格式基本结构路径组件详解特殊语法元素实际示例简单路径复杂路径简写操作符注意MySQL 的 J

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

Pandas使用AdaBoost进行分类的实现

《Pandas使用AdaBoost进行分类的实现》Pandas和AdaBoost分类算法,可以高效地进行数据预处理和分类任务,本文主要介绍了Pandas使用AdaBoost进行分类的实现,具有一定的参... 目录什么是 AdaBoost?使用 AdaBoost 的步骤安装必要的库步骤一:数据准备步骤二:模型

Pandas统计每行数据中的空值的方法示例

《Pandas统计每行数据中的空值的方法示例》处理缺失数据(NaN值)是一个非常常见的问题,本文主要介绍了Pandas统计每行数据中的空值的方法示例,具有一定的参考价值,感兴趣的可以了解一下... 目录什么是空值?为什么要统计空值?准备工作创建示例数据统计每行空值数量进一步分析www.chinasem.cn处

使用Pandas进行均值填充的实现

《使用Pandas进行均值填充的实现》缺失数据(NaN值)是一个常见的问题,我们可以通过多种方法来处理缺失数据,其中一种常用的方法是均值填充,本文主要介绍了使用Pandas进行均值填充的实现,感兴趣的... 目录什么是均值填充?为什么选择均值填充?均值填充的步骤实际代码示例总结在数据分析和处理过程中,缺失数

如何使用 Python 读取 Excel 数据

《如何使用Python读取Excel数据》:本文主要介绍使用Python读取Excel数据的详细教程,通过pandas和openpyxl,你可以轻松读取Excel文件,并进行各种数据处理操... 目录使用 python 读取 Excel 数据的详细教程1. 安装必要的依赖2. 读取 Excel 文件3. 读

解决Maven项目idea找不到本地仓库jar包问题以及使用mvn install:install-file

《解决Maven项目idea找不到本地仓库jar包问题以及使用mvninstall:install-file》:本文主要介绍解决Maven项目idea找不到本地仓库jar包问题以及使用mvnin... 目录Maven项目idea找不到本地仓库jar包以及使用mvn install:install-file基

Windows 上如果忘记了 MySQL 密码 重置密码的两种方法

《Windows上如果忘记了MySQL密码重置密码的两种方法》:本文主要介绍Windows上如果忘记了MySQL密码重置密码的两种方法,本文通过两种方法结合实例代码给大家介绍的非常详细,感... 目录方法 1:以跳过权限验证模式启动 mysql 并重置密码方法 2:使用 my.ini 文件的临时配置在 Wi

MySQL重复数据处理的七种高效方法

《MySQL重复数据处理的七种高效方法》你是不是也曾遇到过这样的烦恼:明明系统测试时一切正常,上线后却频频出现重复数据,大批量导数据时,总有那么几条不听话的记录导致整个事务莫名回滚,今天,我就跟大家分... 目录1. 重复数据插入问题分析1.1 问题本质1.2 常见场景图2. 基础解决方案:使用异常捕获3.

最详细安装 PostgreSQL方法及常见问题解决

《最详细安装PostgreSQL方法及常见问题解决》:本文主要介绍最详细安装PostgreSQL方法及常见问题解决,介绍了在Windows系统上安装PostgreSQL及Linux系统上安装Po... 目录一、在 Windows 系统上安装 PostgreSQL1. 下载 PostgreSQL 安装包2.