0

设备的客户端的心跳包中有一个设备重启标志(第一次连接上重启标志会清空。掉线之后重启标志又会出现。)
我将服务端开设正在7777端口。

netstat -nat | grep -iw "7777" | wc -l

查看端口连接的线程只有600个左右。
可是查看数据库发现设备重启的很频繁。几乎每时每分钟都有不同的设备重启。
请问怎么查看到底是swoole的服务端构造的有问题还是设备网络不稳定。!!!

求指教。!!!

我的代码是这样的。

    date_default_timezone_set('PRC');
    ini_set('max_execution_time', '0');
    ini_set('date.timezone','Asia/Shanghai');

    $serv = new \swoole_server("0.0.0.0", 7777); 

    $serv->set(array(
        'heartbeat_check_interval' => 600,  //心跳检测,会触发onClose事件回调
    ));

    $serv->on('connect', function ($serv, $fd) {
        $fdinfo = $serv->connection_info($fd);
        
    });

    $serv->on('receive', function ($serv, $fd, $from_id, $data){
        //接收逻辑在这里。没有什么长时间的等待内容。
    });

    $serv->on('close', function ($serv, $fd) {
       //'Client: Close.'
    });
    $serv->start();
    
    
    

查看全部 2 个回答

0

从你的描述中应该是心跳的问题。建议搭配 heartbeat_idle_time 成对使用。客户端在固定的时间内向服务端发送心跳包表示我还存在。
关于心跳的文档地址

推广链接