gatewayworker心跳问题

Porygon

问题描述

我在服务端设置了如下代码,开启进程后客户端正常连接并在收到ping消息后主动推送pong消息 服务端日志打印可以确定onMessage收到了pong 但是几次ping之后 服务端还是主动close了连接 这是为什么?

// gateway 进程
$gateway = new Gateway("Websocket://0.0.0.0:7272");
// 设置名称,方便status时查看
$gateway->name = 'ChatGateway';
// 设置进程数,一般两个进程就足够
$gateway->count = 2;
// 分布式部署时请设置成内网ip(非127.0.0.1)
$gateway->lanIp = '127.0.0.1';
// 内部通讯起始端口。假如$gateway->count=2,起始端口为2300
// 则一般会使用2300 2301 2个端口作为内部通讯端口
$gateway->startPort = 2300;
// 心跳间隔
$gateway->pingInterval = 10;

$gateway->pingNotResponseLimit = 3;

下图为打印内容
可以看到收到几次pong后就停了 4次是当时设置的具体 pingInterval和pingNotResponseLimit 数值有所不同 但都是这个效果 interval*limit 秒之后服务端就会close掉这个连接
截图

为此你搜索到了哪些方案及不适用的原因

找的已经回答了的大都是让看gatewayworker的心跳那个的手册 没有具体解释原因和处理方案的

60 0 0
0个回答

🔝