承接 ledc/workerman-process 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

ledc/workerman-process

最新稳定版本:v2.0.1

Composer 安装命令:

composer require ledc/workerman-process

包简介

workerman进程启动器

README 文档

README

安装

composer require ledc/workerman-process

使用

<?php

use Ledc\WorkermanProcess\Process;

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

$process = [
    'websocket' => [
        //使能
        'enable' => true,
        //监听
        'listen' => 'websocket://0.0.0.0:2345',
        //上下文
        'context' => [],
        //worker支持的属性和回调属性
        'properties' => [
            // 事件回调
            // onWorkerStart
            'onWorkerStart'  => function ($worker) {

            },
            // onWorkerReload
            'onWorkerReload' => function ($worker) {

            },
            // onConnect
            'onConnect'      => function ($connection) {

            },
            // onMessage
            'onMessage'      => function ($connection, $data) {
                $connection->send('receive success');
            },
            // onClose
            'onClose'        => function ($connection) {

            },
            // onError
            'onError'        => function ($connection, $code, $msg) {
                echo "error [ $code ] $msg\n";
            },
        ],
        //业务进程:handler类
        'handler' => '',
        //业务进程:handler类的构造函数参数
        'constructor' => [],
    ],
    'http' => [
        //使能
        'enable' => true,
        //监听
        'listen' => 'http://0.0.0.0:2346',
        //上下文
        'context' => [],
        //worker支持的属性
        'properties' => [
            //属性
            'count' => 2,
            // 事件回调
            // onMessage
            'onMessage'      => function ($connection, $data) {
                $connection->send('receive success');
            },
        ],
        //业务进程:handler类
        'handler' => '',
        //业务进程:handler类的构造函数参数
        'constructor' => [],
    ],
];

foreach ($process as $name => $config) {
    Process::start($name, $config);
}

Process::runAll();

配置详情

配置节点properties支持workerman的所有属性和回调属性,详情参考官方文档:workerman 手册

业务handler类在子进程onWorkerStart时实例化,handler类支持workerman的所有回调属性;

配置生效情况

序号 存在handler类 继承Workerman\Worker 实例化逻辑 属性properties handler类constructor
1 new $handler($listen, $context) 生效 忽略
2 new Worker($listen, $context) 生效 忽略
3 new Worker($listen, $context)
子进程onWorkerStart时new $handler()
生效 生效

最佳实践

  • GatewayWorker,使用第一种方式启动
  • 继承Workerman\Worker开发的类,使用第一种方式启动
  • 未继承,使用第二种或第三种方式启动

统计信息

  • 总下载量: 97
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 2
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2023-07-31