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

gateway控制臺里沒有var_dump的打印

風揚

windows環(huán)境,workerman能看到打印日志,gateway就是看不到,真的不知道為什么

3346 3 0
3個回答

風揚

這是控制臺:
截圖
截圖
截圖

這是代碼:

GatewayWorker.php

<?php

namespace app\common\command;

use GatewayWorker\BusinessWorker;
use GatewayWorker\Gateway;
use GatewayWorker\Register;
use think\console\Command;
use think\console\Input;
use think\console\input\Argument;
use think\console\input\Option;
use think\console\Output;
use think\facade\Config;
use Workerman\Worker;

/**
 * GatewayWorker 命令行
 */
class GatewayWorker extends Command
{
    protected function configure()
    {
        $this->setName('gateway')
            ->addArgument('service', Argument::OPTIONAL, 'workerman service: gateway|register|businessworker', null)
            ->addArgument('action', Argument::OPTIONAL, "start|stop|restart|reload|status|connections", 'start')
            ->addOption('host', 'H', Option::VALUE_OPTIONAL, 'the host of workerman server', null)
            ->addOption('port', 'P', Option::VALUE_OPTIONAL, 'the port of workerman server', null)
            ->addOption('daemon', 'd', Option::VALUE_OPTIONAL, 'Run the workerman server in daemon mode.')
            ->setDescription('GatewayWorker Server for ThinkPHP');
    }

    public function execute(Input $input, Output $output)
    {
        $service = $input->getArgument('service');
        $action = $input->getArgument('action');

        if (!in_array($action, ['start', 'stop', 'reload', 'restart', 'status', 'connections'])) {
            $output->writeln("Invalid argument action:{$action}, Expected start|stop|restart|reload|status|connections .");
            exit(1);
        }

        global $argv;
        array_shift($argv);
        array_shift($argv);
        array_unshift($argv, 'think', $action);
        if ('start' == $action) {
            $output->writeln('Starting GatewayWorker server...');
        }

        $option = Config::get('gateway_worker');

        if ($input->hasOption('host')) {
            $host = $input->getOption('host');
        } else {
            $host = !empty($option['host']) ? $option['host'] : '0.0.0.0';
        }

        if ($input->hasOption('port')) {
            $port = $input->getOption('port');
        } else {
            $port = !empty($option['port']) ? $option['port'] : '2347';
        }

        $registerAddress = !empty($option['registerAddress']) ? $option['registerAddress'] : '127.0.0.1:1236';

        $this->start($host, (int) $port, $option, $registerAddress, $service, $output);
    }

    /**
     * 啟動
     * @access public
     * @param  string   $host 監(jiān)聽地址
     * @param  integer  $port 監(jiān)聽端口
     * @param  array    $option 參數(shù)
     * @param  string    $registerAddress 注冊地址
     * @param  string    $service 服務名稱
     * @param  Output    $output 輸出
     * @return void
     */
    public function start(string $host, int $port, array $option, string $registerAddress, string $service, Output $output)
    {
        switch ($service) {
            case 'register':
                $this->register($registerAddress);
                break;
            case 'businessworker':
                $this->businessWorker($registerAddress, $option['businessWorker'] ?? []);
                break;
            case 'gateway':
                $this->gateway($registerAddress, $host, $port, $option);
                break;
            default:
                $output->writeln("<error>Invalid argument action:{$service}, Expected gateway|register|businessworker .</error>");
                exit(1);
                break;
        }
        Worker::runAll();
    }

    /**
     * 啟動register
     * @access public
     * @param  string   $registerAddress
     * @return void
     */
    public function register(string $registerAddress)
    {
        // 初始化register
        new Register('text://' . $registerAddress);
    }

    /**
     * 啟動businessWorker
     * @access public
     * @param  string   $registerAddress registerAddress
     * @param  array    $option 參數(shù)
     * @return void
     */
    public function businessWorker(string $registerAddress, array $option = [])
    {
        // 初始化 bussinessWorker 進程
        $worker = new BusinessWorker();

        $this->option($worker, $option);

        $worker->registerAddress = $registerAddress;
    }

    /**
     * 啟動gateway
     * @access public
     * @param  string  $registerAddress registerAddress
     * @param  string  $host 服務地址
     * @param  integer $port 監(jiān)聽端口
     * @param  array   $option 參數(shù)
     * @return void
     */
    public function gateway(string $registerAddress, string $host, int $port, array $option = [])
    {
        // 初始化 gateway 進程
        if (!empty($option['socket'])) {
            $socket = $option['socket'];
            unset($option['socket']);
        } else {
            $protocol = !empty($option['protocol']) ? $option['protocol'] : 'websocket';
            $socket   = $protocol . '://' . $host . ':' . $port;
            unset($option['host'], $option['port'], $option['protocol']);
        }

        $gateway = new Gateway($socket, $option['context'] ?? []);

        // 以下設置參數(shù)都可以在配置文件中重新定義覆蓋
        $gateway->name                 = 'Gateway';
        $gateway->count                = 4;
        $gateway->lanIp                = '127.0.0.1';
        $gateway->startPort            = 2000;
        $gateway->pingInterval         = 30;
        $gateway->pingNotResponseLimit = 0;
        $gateway->pingData             = '{"type":"ping"}';
        $gateway->registerAddress      = $registerAddress;

        // 全局靜態(tài)屬性設置
        foreach ($option as $name => $val) {
            if (in_array($name, ['stdoutFile', 'daemonize', 'pidFile', 'logFile'])) {
                Worker::${$name} = $val;
                unset($option[$name]);
            }
        }

        $this->option($gateway, $option);
    }

    /**
     * 設置參數(shù)
     * @access protected
     * @param  Worker $worker Worker對象
     * @param  array  $option 參數(shù)
     * @return void
     */
    protected function option(Worker $worker, array $option = [])
    {
        // 設置參數(shù)
        if (!empty($option)) {
            foreach ($option as $key => $val) {
                $worker->$key = $val;
            }
        }
    }
}

Event.php

<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2018 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------
namespace app\common\business;

use GatewayWorker\Lib\Gateway;
use think\worker\Application;
use Workerman\Worker;

/**
 * Worker 命令行服務類
 */
class Events
{
    /**
     * onWorkerStart 事件回調(diào)
     * 當businessWorker進程啟動時觸發(fā)。每個進程生命周期內(nèi)都只會觸發(fā)一次
     *
     * @access public
     * @param  \Workerman\Worker    $businessWorker
     * @return void
     */
    public static function onWorkerStart(Worker $businessWorker)
    {
        $app = new Application;
        $app->initialize();
    }

    /**
     * onConnect 事件回調(diào)
     * 當客戶端連接上gateway進程時(TCP三次握手完畢時)觸發(fā)
     *
     * @access public
     * @param  int       $client_id
     * @return void
     */
    public static function onConnect($client_id)
    {
        Gateway::sendToCurrentClient("Your client_id is a $client_id");
    }

    /**
     * onWebSocketConnect 事件回調(diào)
     * 當客戶端連接上gateway完成websocket握手時觸發(fā)
     *
     * @param  integer  $client_id 斷開連接的客戶端client_id
     * @param  mixed    $data
     * @return void
     */
    public static function onWebSocketConnect($client_id, $data)
    {
        var_export($data);
    }

    /**
     * onMessage 事件回調(diào)
     * 當客戶端發(fā)來數(shù)據(jù)(Gateway進程收到數(shù)據(jù))后觸發(fā)
     *
     * @access public
     * @param int $client_id
     * @param mixed $data
     * @return void
     * @throws \Exception
     */
    public static function onMessage($client_id, $data)
    {
        var_dump($data);

        if($data == 'ping') {
            file_put_contents('gateway.log', $data . "\n", FILE_APPEND);
            Gateway::sendToClient($client_id, 'pong');
        } else {
            file_put_contents('gateway.log', $data . "\n", FILE_APPEND);
            Gateway::sendToAll($data);
        }
    }

    /**
     * onClose 事件回調(diào) 當用戶斷開連接時觸發(fā)的方法
     *
     * @param integer $client_id 斷開連接的客戶端client_id
     * @return void
     * @throws \Exception
     */
    public static function onClose($client_id)
    {
        GateWay::sendToAll("client[$client_id] logout\n");
    }

    /**
     * onWorkerStop 事件回調(diào)
     * 當businessWorker進程退出時觸發(fā)。每個進程生命周期內(nèi)都只會觸發(fā)一次。
     *
     * @param  \Workerman\Worker    $businessWorker
     * @return void
     */
    public static function onWorkerStop(Worker $businessWorker)
    {
        echo "WorkerStop\n";
    }
}

截圖
下面兩行寫入log文件都有內(nèi)容,但是上面那行var_dump的打印在控制臺就是看不到

  • 暫無評論
six

建議用純凈版gatewayWorker試下,感覺是輸出被tp給隱藏了

  • 暫無評論
樹懶

var_export用這個打印看看

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