微信-心跳机制

362 篇文章 3 订阅
263 篇文章 2 订阅

为了实现即时通讯,微信软件采用向移动通讯网络周期性的发送资源(IP地址以及无线信道)分配请求,即使后台运行,也保持在线状态。这种机制也称作为“心跳机制”。最早的心跳机制用于服务器的安全备份机制,是为了防止服务器死机,而在服务器之间采用专用的端口和线路,周期性传送简短的信息,心跳就是形象的比喻。一旦收不到对方的心跳信息,服务器可以接管对方的业务,避免业务的停滞。为了业务的顺畅进行,服务器发送的心跳信息可以非常频密。

这种机制被手机上的互联网应用所借用,无论是Android的原生应用,还是QQ、微博和微信,都采用了这种心跳机制,也就是终端定时向应用服务器发送简短的信息。诸如旧版QQ的心跳周期为30秒,新版QQ3分钟,微信为5分钟,Google原生应用为28分钟左右。而手机每次发送心跳包,都需要移动通信网络为用户分配资源,分配的过程体现在信令的发送和接收上。一次心跳包的发送过程,牵涉的信令多达几十条。这些网络资源分配的信令信息运营商是不能进行收费的,就好比手机拨电话没有接通的时候,也是很多信令信息的交互而用户不用付费。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
腾讯云微信小程序一站式解决方案源码,里面包括了群聊的实现,信道状态枚举,断线重连最多尝试 5 次,每次重连前,等待时间的增量值,等确认微信小程序全面支持 ES6 就不用那么麻烦了。   这里包括了消息发送和接收,gi8p有信道处理事件等,里面还有比较多的子函数,比如注册消息处理函数、派发事件,通知所有处理函数进行处理、信道连接控制、获取 WebSocket 连接地址,获取地址成功后,开始进行 WebSocket 连接、   心跳、断开与重连处理、微信登录,获取 code 和 encryptData、进行服务器登录,以获得登录会话。信道事件处理机制    // 信道事件包括:    // connect - 连接已建立    // close - 连接被关闭(包括主动关闭和被动关闭)    // reconnecting - 开始重连    // reconnect - 重连成功    // error - 发生错误,其中包括连接失败、重连失败、解包失败等等    // [message] - 信道服务器发送过来的其它事件类型,如果事件类型和上面内置的事件类型冲突,将在事件类型前面添加前缀 `@`   腾讯云小程序一站式解决方案,Ping-Pong 心跳检测超时控制,这个值有两个作用:    * 1. 表示收到服务器的 Pong 相应之后,过多久再发下一次 Ping    * 2. 如果 Ping 发送之后,超过这个时间还没收到 Pong,断开与服务器的连接    * 该值将在与信道服务器建立连接后被更新

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值