运行多个gatewayworker的问题

fqfisher

同一台服务器同时运行两个gatewayworker,查看端口和状态都正常,但是其中一个tcp无法建立连接。
代码如下:
start_register.php:

// register 服务必须是text协议
$register = new Register('text://0.0.0.0:1238');

$register = new Register('text://0.0.0.0:1239');

start_businessworker.php:

// bussinessWorker 进程
$worker = new BusinessWorker();
// worker名称
$worker->name = 'YourAppBusinessWorker';
// bussinessWorker进程数量
$worker->count = 4;
// 服务注册地址
$worker->registerAddress = '127.0.0.1:1238';

$worker->registerAddress = '127.0.0.1:1239';

start_gateway.php

// gateway 进程,这里使用Text协议,可以用telnet测试
$gateway = new Gateway("tcp://0.0.0.0:8282");
// gateway名称,status方便查看
$gateway->name = 'YourAppGateway';
// gateway进程数
$gateway->count = 4;
// 本机ip,分布式部署时使用内网ip
$gateway->lanIp = '127.0.0.1';
// 内部通讯起始端口,假如$gateway->count=4,起始端口为4000
// 则一般会使用4000 4001 4002 4003 4个端口作为内部通讯端口 
$gateway->startPort = 2000;
// 服务注册地址
$gateway->registerAddress = '127.0.0.1:1238';

start_gateway_ws.php

// gateway 进程,这里使用Text协议,可以用telnet测试
$gateway = new Gateway("websocket://0.0.0.0:8384");
// gateway名称,status方便查看
$gateway->name = 'YourAppGatewayWS';
// gateway进程数
$gateway->count = 4;
// 本机ip,分布式部署时使用内网ip
$gateway->lanIp = '127.0.0.1';
// 内部通讯起始端口,假如$gateway->count=4,起始端口为4000
// 则一般会使用4000 4001 4002 4003 4个端口作为内部通讯端口 
$gateway->startPort = 4000;
// 服务注册地址
$gateway->registerAddress = '127.0.0.1:1239';

无法telnet 8282端口,但是端口的监听状态是正常的,8384却没有存在问题。
请问下这是什么原因?是我部署的方式有误么?

阅读 4501
2个回答

walkor

BusinessWorker 你只启动了一个。8282端口的BusinessWorker没启动。

如果不熟悉按照手册的方法来不容易出错
http://doc2.workerman.net/326154

  • fqfisher 2017-06-24

    businessworker需要new两个么? 不是new一个再注册两个registerAddress么? 文档看的不是很明白,请指点下,谢谢

  • walkor 2017-06-24

    文档写的是两个

  • 林枫aaron 2019-07-01

    @1:根据文档 更改Applications/Chat2/start_web.php中的WebServer端口, 里面没有这个文件start_web.php 啊 只有start_businessworker.php & start_gateway.php &start_register.php和Events.php 哪有strat_web.php??

  • walkor 2019-07-01

    手册以workerman-chat项目为例,你的项目没有就不用管

  • 林枫aaron 2019-08-01

    @1:运行两个项目 start.php需要拷贝一份出来吗?start2.php?为啥我按照文档配置,启动时候其中一个成功 另外一个提示端口被占用 但是我查了下 没有占用

  • zhule 2021-10-16

    请问我要运行多个客户端websocket老是提示Workerman[index.php] already running怎么处理呢,php workernam做多客户端websocket

鸢Yvonne

如何启动两个,start.php 不是循环了所有文件吗?

  • 林枫aaron 2019-10-15

    看看文档 原本只有statr.php 然后我是新建一个start2.php 拷贝一个chat文件夹改名 然后statr2.php设置好路径.文档说的很详细 目前我已经解决了这个问题