我1.0版本中,我采用了
<?php
use \Workerman\Worker;
use \GatewayWorker\Gateway;
use \Workerman\Lib\Timer;
use \Workerman\Autoloader;
// 自动加载类
require_once __DIR__ . '/../../Workerman/Autoloader.php';
Autoloader::setRootPath(__DIR__);
// gateway 进程
$gateway = new Gateway("Text://0.0.0.0:2529");
// 名称,以便status时查看方便
$gateway->name = 'Send_HnAnimal_ToPhp_Gateway';
// 进程数,建议与cpu核数相同
$gateway->count = 2;
// 分布式部署时需要设置成内网ip
$gateway->lanIp = '127.0.0.1';
// 内部通讯起始端口,假如$gateway->count=4,起始端口为4000
// 则一般会使用4001 4002 4003 4004 4个端口作为内部通讯端口
$gateway->startPort = 2521;
$gateway->onWorkerStart = function($gateway)
{
$gateway->timer_the_send_id = Timer::add(1,function(){
$data = \Uplott\Lottery\Cj\HnAnimal::send_data();
$data = json_encode($data);
\GatewayWorker\Lib\Gateway::sendToAll($data);
});
};
$gateway->onWorkerStop = function($gateway){
Timer::del($gateway->timer_the_send_id);
};
// 如果不是在根目录启动,则运行runAll方法
if(!defined('GLOBAL_START'))
{
Worker::runAll();
}
一直都没有问题。
升级到2.0之后,出现下面这种情况
PHP Warning: stream_socket_client(): unable to connect to tcp://127.0.0.1:1236 (Connection refused) in /home/GatewayWorker/GatewayWorker/Lib/Gateway.php on line 603
然后,我增加
// 服务注册地址
$gateway->registerAddress = '127.0.0.1:2500';
还是出现上述错误,不知道什么原因?是不是2.0版本不能同时出现gateway?请指教
GatewayWorker升级参考2.0手册
http://workerman.net/gatewaydoc/appendices/upgrade.html