国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

wenman中整合getwaywork,可以自定義worker名稱嗎

zyyzcr

wenman中整合getwaywork,可以自定義worker名稱嗎?

如圖所示

<?php

use Webman\GatewayWorker\Gateway;
use Webman\GatewayWorker\BusinessWorker;
use Webman\GatewayWorker\Register;

return [
    'gateway' => [
        'handler'     => Gateway::class,
        'listen'      => 'websocket://0.0.0.0:7373',
        'count'       => cpu_count(),
        'reloadable'  => false,
        'constructor' => ['config' => [
            'lanIp'           => '127.0.0.1',
            'startPort'       => 2300,
            'pingInterval'    => 25,
            'pingData'        => '{"type":"ping"}',
            'registerAddress' => '127.0.0.1:1236',
            'onConnect'       => function(){},
        ]]
    ],[
        'handler'     => Gateway::class,
        'listen'      => 'tcp://0.0.0.0:8383',
        'count'       => cpu_count(),
        'reloadable'  => false,
        'constructor' => ['config' => [
            'lanIp'           => '127.0.0.1',
            'startPort'       => 2310,
            'pingInterval'    => 25,
            'pingData'        => '{"type":"ping"}',
            'registerAddress' => '127.0.0.1:1236',
            'onConnect'       => function(){},
        ]]
    ],
    'worker' => [
        'handler'     => BusinessWorker::class,
        'count'       => cpu_count()*2,
        'constructor' => ['config' => [
            'eventHandler'    => plugin\webman\gateway_1\Events::class,
            'name'            => 'ChatBusinessWorker',
            'registerAddress' => '127.0.0.1:1236',
        ]]
    ],
    'register' => [
        'handler'     => Register::class,
        'listen'      => 'text://0.0.0.0:1236',
        'count'       => 1, // Must be 1
        'constructor' => []
    ],
];
1267 7 0
7個(gè)回答

Gin

截圖
截圖
根據(jù)目錄顯示的

  • ichynul 2023-03-21

    前面會(huì)自動(dòng)加一串plugin.xxx.xxx 的

  • zyyzcr 2023-03-21

    有辦法修改嗎?

  • iot.workerman.net物聯(lián)網(wǎng)平臺(tái) 2023-03-21

    加前綴的目的是為了不跟其他插件沖突

  • zyyzcr 2023-03-21

    當(dāng)包含兩個(gè)getway時(shí),第二個(gè)會(huì)顯示為0

        'gateway' => [
            'handler'     => Gateway::class,
            'listen'      => 'websocket://0.0.0.0:7373',
            'count'       => cpu_count(),
            'reloadable'  => false,
            'constructor' => ['config' => [
                'lanIp'           => '127.0.0.1',
                'startPort'       => 2300,
                'pingInterval'    => 25,
                'pingData'        => '{"type":"ping"}',
                'registerAddress' => '127.0.0.1:1236',
                'onConnect'       => function(){},
            ]]
        ],[
            'handler'     => Gateway::class,
            'listen'      => 'tcp://0.0.0.0:8383',
            'count'       => cpu_count(),
            'reloadable'  => false,
            'constructor' => ['config' => [
                'lanIp'           => '127.0.0.1',
                'startPort'       => 2310,
                'pingInterval'    => 25,
                'pingData'        => '{"type":"ping"}',
                'registerAddress' => '127.0.0.1:1236',
                'onConnect'       => function(){},
            ]]
        ]
  • Gin 2023-03-21

    多協(xié)議?

  • zyyzcr 2023-03-21

    是的

ichynul

除非改框架才行

  • 暫無(wú)評(píng)論
Gin

第二個(gè)gateway 對(duì)應(yīng)的 key是0 所以顯示 0
截圖

  • 暫無(wú)評(píng)論
zyyzcr

第二個(gè)gateway 對(duì)應(yīng)的 key是0 所以顯示 0

完美解決,多謝

  • 暫無(wú)評(píng)論
efnic
<?php

namespace david\gateway;

use RuntimeException;
use Workerman\Connection\TcpConnection;
use Workerman\Worker;

/**
 * 啟動(dòng)GatewayWorker服務(wù)
 * - @link http://www.wtbis.cn/doc/gateway-worker/
 */
class Server
{
    /**
     * 運(yùn)行
     * @return void
     */
    public static function run(): void
    {
        /**
         * 初始化默認(rèn)的配置
         */
        $config = static::config('default');
        Worker::$pidFile = $config['pid_file'] ?? '';
        Worker::$stdoutFile = $config['stdout_file'] ?? '/dev/null';
        Worker::$logFile = $config['log_file'] ?? '';
        Worker::$eventLoopClass = $config['event_loop'] ?? '';
        TcpConnection::$defaultMaxPackageSize = $config['max_package_size'] ?? 10 * 1024 * 1024;
        if (property_exists(Worker::class, 'statusFile')) {
            Worker::$statusFile = $config['status_file'] ?? '';
        }
        if (property_exists(Worker::class, 'stopTimeout')) {
            Worker::$stopTimeout = $config['stop_timeout'] ?? 2;
        }

        /**
         * 啟動(dòng)進(jìn)程
         */
        foreach (static::config('process') as $name => $config) {
            if ($config['enable'] ?? null) {
                $handler = $config['handler'];
                $listen = $config['listen'] ?? '';
                $properties = $config['properties'] ?? [];
                /** @var Worker $worker */
                $worker = new $handler($listen);
                $worker->name = $name;
                foreach ($properties as $property => $value) {
                    $worker->{$property} = $value;
                }
            }
        }

        Worker::runAll();
    }

    /**
     * GatewayWorker配置
     * @param string $key
     * @return array
     */
    public static function config(string $key = 'default'): array
    {
        //密鑰
        $gatewaySecret = getenv('GATEWAY_SECRET');
        //注冊(cè)中心監(jiān)聽(tīng)地址
        $registerListenAddress = getenv('GATEWAY_REGISTER_LISTEN_ADDRESS') ? getenv('GATEWAY_REGISTER_LISTEN_ADDRESS') : '127.0.0.1';
        //注冊(cè)中心地址
        $registerAddress = getenv('GATEWAY_REGISTER_ADDRESS') ? getenv('GATEWAY_REGISTER_ADDRESS') : '127.0.0.1';
        //注冊(cè)中心端口
        $registerPort = getenv('GATEWAY_REGISTER_PORT') ? getenv('GATEWAY_REGISTER_PORT') : '1236';
        //本機(jī)IP
        $lanIp = getenv('SOCKET_BIND_TO_IP') ? getenv('SOCKET_BIND_TO_IP') : '127.0.0.1';
        if (false === $gatewaySecret) {
            throw new RuntimeException('未設(shè)置環(huán)境變量:GATEWAY_SECRET');
        }

        //初始化通信密鑰
        if (class_exists('\GatewayWorker\Lib\Gateway')) {
            \GatewayWorker\Lib\Gateway::$registerAddress = $registerAddress . ':' . $registerPort;
            \GatewayWorker\Lib\Gateway::$secretKey = $gatewaySecret;
        } else {
            throw new RuntimeException('\GatewayWorker\Lib\Gateway 不存在');
        }

        $config = [
            /**
             * 初始化默認(rèn)的配置
             */
            'default' => [
                'event_loop' => '',
                'stop_timeout' => 2,
                'pid_file' => runtime_path() . '/gateway_worker.pid',
                'status_file' => runtime_path() . '/gateway_worker.status',
                'stdout_file' => runtime_path() . '/logs/gateway_worker_stdout.log',
                'log_file' => runtime_path() . '/logs/gateway_worker.log',
                'max_package_size' => 10 * 1024 * 1024
            ],
            /**
             * 進(jìn)程配置
             */
            'process' => [
                //注冊(cè)中心進(jìn)程 http://www.wtbis.cn/doc/gateway-worker/register.html
                'register' => [
                    //使能
                    'enable' => true,
                    //處理類
                    'handler' => \GatewayWorker\Register::class,
                    //監(jiān)聽(tīng)
                    'listen' => 'text://' . $registerListenAddress . ':' . $registerPort,
                    'properties' => [
                        //進(jìn)程數(shù)
                        'count' => 1,
                        //通信密鑰
                        'secretKey' => $gatewaySecret,
                    ],
                ],
                //客戶端連接的進(jìn)程 http://www.wtbis.cn/doc/gateway-worker/gateway.html
                'gateway' => [
                    //使能
                    'enable' => true,
                    //客戶端連接的進(jìn)程
                    'handler' => \GatewayWorker\Gateway::class,
                    //應(yīng)用層協(xié)議、監(jiān)聽(tīng)地址、端口
                    'listen' => 'Frame://0.0.0.0:2121',
                    'properties' => [
                        //進(jìn)程數(shù)
                        'count' => 2,
                        //通信密鑰
                        'secretKey' => $gatewaySecret,
                        //設(shè)置進(jìn)程收到reload信號(hào)后是否reload重啟
                        'reloadable' => false,
                        //本機(jī)ip,分布式部署時(shí)使用內(nèi)網(wǎng)ip
                        'lanIp' => $lanIp,
                        // 內(nèi)部通訊起始端口,假如$gateway->count=4,起始端口為4000
                        // 則一般會(huì)使用4000 4001 4002 4003 4個(gè)端口作為內(nèi)部通訊端口
                        'startPort' => 4000,
                        //注冊(cè)中心地址
                        'registerAddress' => $registerAddress . ':' . $registerPort,
                        //心跳檢測(cè)時(shí)間間隔
                        'pingInterval' => 30,
                        //客戶端連續(xù)$pingNotResponseLimit次$pingInterval時(shí)間內(nèi)不發(fā)送任何數(shù)據(jù)(包括但不限于心跳數(shù)據(jù))則斷開(kāi)鏈接,并觸發(fā)onClose
                        'pingNotResponseLimit' => 1,
                        'onConnect' => function () {
                        },
                    ],
                ],
                //業(yè)務(wù)邏輯進(jìn)程 http://www.wtbis.cn/doc/gateway-worker/business-worker.html
                'businessWorker' => [
                    //使能
                    'enable' => true,
                    //業(yè)務(wù)處理類
                    'handler' => \GatewayWorker\BusinessWorker::class,
                    'properties' => [
                        //事件處理類
                        'eventHandler' => \david\gateway\Events::class,
                        //進(jìn)程數(shù)
                        'count' => cpu_count(),
                        //通信密鑰
                        'secretKey' => $gatewaySecret,
                        //注冊(cè)中心地址
                        'registerAddress' => $registerAddress . ':' . $registerPort,
                    ],
                ],
            ],
        ];

        return $config[$key] ?? [];
    }
}
  • 暫無(wú)評(píng)論
efnic
<?php

namespace david\gateway\bootstrap;

use david\gateway\Server;
use Webman\Bootstrap;
use Workerman\Worker;

/**
 * 初始化\GatewayWorker\Lib\Gateway::class
 */
class LibGateway implements Bootstrap
{
    public static function start(?Worker $worker)
    {
        //讀取配置時(shí),自動(dòng)設(shè)置注冊(cè)中心地址和通信密鑰
        Server::config();
    }
}
  • 暫無(wú)評(píng)論
efnic
#!/usr/bin/env php
<?php

/**
 * GatewayWorker
 * @link http://www.wtbis.cn/doc/gateway-worker/
 */

use david\gateway\Server;

require_once __DIR__ . '/vendor/autoload.php';
require_once __DIR__ . '/support/bootstrap.php';
Server::run();
  • efnic 2023-04-02

    啟動(dòng):php gateway.php start -d

年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??