第6节、Swoole长连接异步客户端

8 篇文章 0 订阅
8 篇文章 3 订阅

1、TCP异步客户端

$client = new Swoole\Client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC);
0、SWOOLE_SOCK_TCP 客户端协议类型
1、SWOOLE_SOCK_ASYNC 异步还是同步

2、基础设置

$client->set([
        'open_length_check'=>1,
        'package_length_type'=>'N',
        'package_length_offset'=>0, 
        'package_body_offset'=>4,  
        'package_max_length'=>1024 * 1024 * 3,
    ]);
0、open_length_check 开启长度检测
1、package_length_type 设置包头的长度
2、package_length_offset 包头长度从哪儿开始计算
3、package_body_offset 包体从第几个字节开始计算
4、package_max_length 包体的最大长度

3、基本的事件调用

0、连接事件
$client->on("connect", function(swoole_client $cli){
    $data = pack('N', strlen('test123')).'678';
    $cli->send($data);
});
1、接收事件
$client->on("receive", function(swoole_client $cli, $data){
    var_dump($data);
});
2、错误事件
$client->on("error", function(swoole_client $cli){
    echo "error\n";
});
3、客户端关闭事件
$client->on("close", function(swoole_client $cli){
    echo "Connection close\n";
});

4、连接服务端的IP和端口

$client->connect('127.0.0.1', 9800) || exit("");

这里用127.0.0.1,是因为我这里的客户端和服务端代码都部署在同一台服务器上

5、定时器,保持长连接

swoole_timer_tick(9000,function () use($client){
    $client->send(pack('N', strlen('1')).'1');
});
0、心跳是什么?

顾名思义,心跳是判断一个事物生还是死的一个标准,在swoole里,心跳是指用来判断一个连接是正常还是断开的

1、心跳作用主要有两个:

1、客户端定时给服务端发送点数据,防止连接由于长时间没有通讯而被某些节点的防火墙关闭导致连接断开的情况。

2、服务端可以通过心跳来判断客户端是否在线,如果客户端在规定时间内没有发来任何数据,就认为客户端下线。这样可以检测到客户端由于极端情况(断电、断网等)下线的事件。

2、服务与之呼应的配置
$server->set([
    'worker_num'=>1, //设置进程
    'heartbeat_idle_time'=>10,//连接最大的空闲时间
    'heartbeat_check_interval'=>3 //服务器定时检查
]);

查看函数 swoole_timer_tick

在说完下一节长连接的服务端之后,再来进行总体分析,敬请期待……

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晨埃LUO定

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值