首页 > 其他分享 >workerman使用记录

workerman使用记录

时间:2024-02-01 14:56:57浏览次数:26  
标签:127.0 记录 0.1 0.0 worker workerman 使用 gateway

composer安装workerman

composer require workerman/workerman

 

 

 

 

项目根目录创建worker.php

<?php
// worker.php

use Workerman\Worker;
use GatewayWorker\Gateway;
use GatewayWorker\BusinessWorker;
use GatewayWorker\Register;

// Autoload
require_once __DIR__ . '/vendor/autoload.php';

// 初始化BusinessWorker
$worker = new BusinessWorker();
$worker->name = 'YourBusinessWorkerName';
$worker->count = 4;
$worker->registerAddress = '127.0.0.1:1238';
$worker->eventHandler = '\app\common\lib\TcpHandler';

// 初始化GatewayWorker
$gateway = new Gateway("tcp://0.0.0.0:8282");
$gateway->name = 'YourGatewayName';
$gateway->count = 4;
$gateway->lanIp = '127.0.0.1';
$gateway->startPort = 2900;
$gateway->registerAddress = '127.0.0.1:1238';

// register 必须是text协议
$register = new Register('text://0.0.0.0:1238');

Worker::runAll();

 

 

\app\common\lib\TcpHandler如下:
<?php
namespace app\common\lib;

use GatewayWorker\Lib\Gateway;
use Workerman\Connection\ConnectionInterface;

class TcpHandler
{
    public static function onConnect($clientID)
    {
        // 客户端连接时的处理
        echo $clientID . " has connected !\r\n";
    }

    public static function onMessage($clientID, $data)
    {
        // 处理接收到的消息
        // 这里可以调用ThinkPHP的模型、服务等进行业务处理
        // 处理完成后,可以使用Gateway::sendToClient()发送消息给客户端
        echo strtolower(bin2hex($data));
        echo "\r\n";
    }

    public static function onClose($clientID)
    {
        // 客户端断开连接时的处理
        echo $clientID . " has logout.\r\n";
    }
}

 

 

设备在首次通电后,上报“注册”指令,且携带设备编号,此时使用bindUid方法,将客户端ID和设备编号绑定。

之后的业务逻辑中只需要使用sendToUid方法向设备编号对应的客户端ID发送数据即可。

 

 

 

 

 

 

 

.

标签:127.0,记录,0.1,0.0,worker,workerman,使用,gateway
From: https://www.cnblogs.com/Skate0rDie/p/18001203

相关文章

  • CPU使用率--上篇
    CPU使用率CPU使用率是衡量计算机CPU资源利用程度的指标,表示CPU在一段时间内执行计算任务的占用情况。它可以帮助我们了解系统的负载情况,优化程序性能,以及监控系统的健康状况。CPU使用率通常以百分比表示,表示CPU在某个时间段内用于执行计算任务的时间占总时间的比例。例如,如果CPU......
  • 最新大专考试题目搜题软件?如何选择一款适合大学生使用的搜题工具?
    作为当代大学生,我们常常面临着繁重的学业压力和众多的学习任务。在这个信息爆炸的时代,如何高效地进行搜题和学习成了我们迫切需要解决的问题。幸运的是,随着科技的不断进步,我们拥有了许多方便、实用的日常搜题和学习软件。1.百词斩百词斩是针对英语学习开发的一款“图背单词软件”,软......
  • centos7 如何安装与使用 Anaconda
    简介: Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。因为包含了大量的科学包,Anaconda的下载文件比较大,如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和Python)。Anaconda是跨平台的,有......
  • Linux系统下使用dockercompose部署的stringboot应用程序不断重启,无法正常访问。
    Linux系统下使用dockercompose部署的stringboot应用程序不断重启,无法正常访问。问题描述使用dockercompose部署的stringboot应用程序,每次都是启动成功,通过apifox访问接口就失败,端口也无法ping通。没有任何报错信息,启动日志也不全,只有2行。最开始定位的是stringboot的版本号问题......
  • jmeter Regular Expression Extractor和JSON Extractor使用
    在Jmete中我们经常遇到需要把当前接口返回内容用于下一个接口请求,应用场景:登录接口返回的cookie或者token等,下面就简单描述一下两种提取器的使用和需要注意的事项:1、RegularExpressionExtractorApplyto:待研究;Fieldtocheck:取值的地方,ReferenceName:取得值后存放值的变量......
  • Gitee使用
    Gitee使用指南Git工具安装官网:https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git根据提示点击链接下载windows版本(需要挂梯子)windows下载网页地址:https://git-scm.com/download/win64位下载链接:https://github.com/git-for-windows/git/relea......
  • js使用map
     js使用map  getData(){      //调用接口方法      getlistInspectionnum().then(response=>{        console.log("######234#######")        //console.log(response.length)       ......
  • jmeter 使用 BeanShell PostProcessor 过程中遇到的一些问题记录
    关于jmeter中使用BeanShellPostProcessor遇到的一些问题记录:1、BeanShellPostProcessor的位置BeanShellPostProcessor要放在获取内容对应的线程的同一个层级,如:2、内容:例如:FileWriterfstream=newFileWriter("E:\aaskNodeId.csv");//,如果要建立文件并追加写入数据,需......
  • 使用DependencyContext显示当前应用程序的目标框架和运行时依赖项
    这是文档的解释:编译.NET应用程序后,SDK将生成JSON清单文件(<ApplicationName>.deps.json),其中包含有关应用程序依赖项的信息。可以在运行时使用该DependencyContext类从此清单中读取信息。当项目中使用了这种方式获取所有类库时varcompilationLibraries=Dependen......
  • 界面组件DevExpress中文教程 - 如何使用UI本地化客户端工具本地化应用
    DevExpress拥有.NET开发需要的所有平台控件,包含600多个UI控件、报表平台、DevExpressDashboardeXpressApp框架、适用于VisualStudio的CodeRush等一系列辅助工具。获取DevExpressv23.2正式版下载DevExpress技术交流群9:909157416      欢迎一起进群讨论在2023年12月(......