swoole_client 怎么断线重连

发布于 2022-09-12 00:34:00 字数 1532 浏览 26 评论 0

服务端Swoole_Server开启了心跳检测(heartbeat_check_interval),

  $serv->set([
            //'daemonize'                => 1,   // 进入守护进程 防止ssh终端退出后,程序将被终止运行
            'worker_num'               => 4,   // 开启进程数
            'heartbeat_check_interval' => 10,      //  * 服务器定时检测在线列表的时间
            'heartbeat_idle_time'      => 20,     //  连接最大的空闲时间 (如果最后一个心跳包的时间与当前时间之差超过这个值,则认为该连接失效)
            'log_file' => 'swoole.log',
            'max_connection' => 10000   // 最多允许tcp链接数
        ]);

20秒后踢掉了客户端。
客户端:client.php

$client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC);
        $this->server = $client;
        $client->on('connect', function($cli) {
             $data = [
                 'companyid'=>$this->config['companyid'],
                 'companykey'=>$this->config['companykey']
             ];
            $cli->send(json_encode($data));

        });

        //注册数据接收回调
        $client->on('receive', function($cli, $data) {
            echo "Received: " . $data;
            $this->redis()->rpush('notifyClient',$data);

            // 记录tcp数据
            $this->redis()->rpush('log_tcp',$data);
        });


        $client->on('error', function($cli) {
            echo "Connect failed\r\n\r\n";


        });
        $client->on('close', function($cli) {
            echo "Connection close\r\n\r\n";
        });

        $client->connect('ip', 9501, true);

问题是怎么在客户端做心跳回应?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

楠木可依 2022-09-19 00:34:00

每隔一段时间从客户端发送心跳包到服务端。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文