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

我這邊發(fā)現(xiàn)一個問題,配置里gateway-worker端口1236設置為了12360,并不會完全生效

fzx546

問題描述

我這邊發(fā)現(xiàn)一個問題,我把配置里gateway-worker端口1236設置為了12360,啟動這些都正常,但是在我使用gateway發(fā)送消息時,仍然調用的是1236這個端口,導致不斷報錯。后來我去vendor/workerman/gateway-worker/src/Lib/Gateway.php下把端口也改為12360才恢復正常

程序代碼或配置,這是配置

<?php

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

return [
    'gateway' => [
        'handler'     => Gateway::class,
        'listen'      => 'websocket://0.0.0.0:12720',
        'count'       => cpu_count(),
        'reloadable'  => false,
        'constructor' => ['config' => [
            'lanIp'           => '127.0.0.1',
            'startPort'       => 13000,
            'pingInterval'    => 25,
            'pingData'        => '{"type":"ping"}',
            'registerAddress' => '127.0.0.1:12360',
            'onConnect'       => function(){},
        ]]
    ],
    'worker' => [
        'handler'     => BusinessWorker::class,
        'count'       => cpu_count()*2,
        'constructor' => ['config' => [
            'eventHandler'    => plugin\webman\gateway\Events::class,
            'name'            => 'ChatBusinessWorker',
            'registerAddress' => '127.0.0.1:12360',
        ]]
    ],
    'register' => [
        'handler'     => Register::class,
        'listen'      => 'text://127.0.0.1:12360',
        'count'       => 1, // Must be 1
        'constructor' => []
    ],
];

這是vendor/workerman/gateway-worker/src/Lib/Gateway.php更改后,一開始是1236,導致外部配置修改了12360,程序仍然調用1236進行發(fā)送

namespace GatewayWorker\Lib;

use Exception;
use GatewayWorker\Protocols\GatewayProtocol;
use Workerman\Connection\TcpConnection;

/**
 * 數(shù)據(jù)發(fā)送相關
 */
class Gateway
{
    /**
     * gateway 實例
     *
     * @var object
     */
    protected static $businessWorker = null;

    /**
     * 注冊中心地址
     *
     * @var string|array
     */
    public static $registerAddress = '127.0.0.1:12360';

    /**
     * 秘鑰
     * @var string
     */
    public static $secretKey = '';

    /**
     * 鏈接超時時間
     * @var int
     */
    public static $connectTimeout = 3;

    /**
     * 與Gateway是否是長鏈接
     * @var bool
     */
    public static $persistentConnection = true;

重現(xiàn)問題的步驟

情況發(fā)生在我調用了Gateway::ungroup($groupName);就會報錯error:stream_socket_client(): Unable to connect to tcp://127.0.0.1:1236 (由于目標計算機積極拒絕,無法連接。)。事實上我早就在配置里把端口改為了12360

操作系統(tǒng)環(huán)境及workerman/webman等具體版本

使用的webman官方最新版本,在webman里安裝的gateway-worker。系統(tǒng)是在本地電腦win10系統(tǒng)

719 1 0
1個回答

walkor 打賞

businessWorker進程里的業(yè)務代碼可以自動識別regsiter端口。
其它進程的業(yè)務代碼需要手動設置 Gateway::$registerAddress='127.0.0.1:xxx';用來標記到底是向哪個gatewayWorker發(fā)送數(shù)據(jù)。有這個設置機制因為其它進程無法獲知regsiter地址,并且可能部署了多個gatewayWorker,甚至GatewayWorker不在本服務器。

  • fzx546 2024-05-04

    明白了 感謝大佬,我的確是在外部直接調用的gateway,沒有重新手動設置地址

年代過于久遠,無法發(fā)表回答
??