记录下本人在windows环境下基于laravel GatewayWorker 练习开发的一个聊天demo遇到的问题 
                                                    
                        
                    
                    
  
                    
                    一、结合laravel的command命令行控制Gateway
格式太丑了 凑合看
class GatewayWorker extends Command
{
     protected $signature = 'gateway-worker:server {action} {--start=all : start}';
     protected $description = '控制gataway-worker的命令程序';
     public function __construct()
     {
          parent::__construct();
     }
     public function handle()
      {
          $a = 1;
          global $argv;
          $action = $this->argument('action');
      // 针对windows, 运行三次,服务分别启动
          if ($action === 'single') {
            $start = $this->option('start');
          if ($start === 'register') {
            $this->startRegister();
          } elseif ($start === 'gateway') {
            $this->startGateWay();
          } elseif ($start === 'worker') {
            $this->startBusinessWorker();
        }
        Worker::runAll();
        return;
      }
      $argv[1] = $action;
      $this->start();
}windows无法一次启动多个服务,迂回一下用bat一次启动
// start_for_win.bat
start /b php artisan gateway-worker:server single --start=register
start /b php artisan gateway-worker:server single --start=gateway
start /b php artisan gateway-worker:server single --start=worker
pause二、异常报错
1. 编码错误

这个编码错误其实是由于Gateway抛出的错误无法被解析导致。
实际报错进行try catch捕捉
其真实原因进行错误捕捉或者将windows编码设置成utf-8即可 参考: jingyan.baidu.com/article/25648fc1...
2. 出现未配置过的端口报错
stream_socket_client(): unable to connect to tcp://127.0.0.1:XXXX (Connection refused)
本人基本上都是这种报错, 1中提到的编码问题解析出来其实也是这样. 检查是否有配置错误// windows环境下 如果是从composer引入的gateway 需要修改源码更改默认的注册地址端口, 开发手册上也有写 //我直接包了一层 class Gateway extends \GatewayWorker\Lib\Gateway { public static $registerAddress = '127.0.0.1:XXXX'; }
三、总结
开发环境无限接近于生产环境真的能省好多事啊  
 
重要的事情说三遍
多看文档! 多看文档! 多看文档!
本作品采用《CC 协议》,转载必须注明作者和本文链接
 
           fofome 的个人博客
 fofome 的个人博客
        

 
                     
                     
             
             
           
           关于 LearnKu
                关于 LearnKu
               
                     
                     
                     粤公网安备 44030502004330号
 粤公网安备 44030502004330号 
 
推荐文章: