美文网首页插件等
IM+推送+心跳机制

IM+推送+心跳机制

作者: shuixingge | 来源:发表于2016-08-11 22:57 被阅读798次

参考1
参考2
参考3
参考4
参考5

推送:

服务器给客户端发送消息
开发者通过第三方推送服务提供商将信息直接下发给需要的设备,第三方推送服务提供商与设备建立一条长连接通道,并且将消息路由到APP中。

推送
推送实现的方式

**(1)长连接: ** 客户端主动和服务器建立TCP长连接之后, 客户端定期向服务器发送心跳包, 有消息的时候, 服务器直接通过这个已经建立好的TCP连接通知客户端。
(2)轮询: 客户端定期询问服务器有没有新的消息, 这样服务器不用管客户端的地址是什么, 客户端来问, 直接告诉它就行.轮询间隔太长,实时性太差;轮询间隔太短,资源消耗大。
(3)SMS: 服务器在有新消息时给用户的手机号发一条特殊的短信, 客户端拦截短信后发现是正常短信就放行, 如果是特殊短信就连接服务器取消息。

心跳包

作用:其实主要是为了防止NAT超时。其次是探测连接是否断开。

心跳包和轮询的区别

心跳包和轮询看起来类似, 都是客户端主动联系服务器, 但是区别很大:
(1)轮询是为了获取数据, 而心跳是为了保活TCP连接。
(2)轮询得越频繁, 获取数据就越及时, 心跳的频繁与否和数据是否及时没有直接关系
(3)轮询比心跳能耗更高, 因为一次轮询需要经过TCP三次握手, 四次挥手, 单次心跳不需要建立和拆除TCP连接。

NAT耗时

国内移动无线网络运营商在链路上一段时间内没有数据通讯后, 会淘汰NAT表中的对应项, 造成链路中断。

NAT超时
心跳保活

心跳一般是指某端(绝大多数情况下是客户端)每隔一定时间向对端发送自定义指令,以判断双方是否存活,因其按照一定间隔发送,类似于心跳,故被称为心跳指令。

TCP的KeepAlive无法�替代应用层心跳保活机制的原因

(1)TCP KeepAlive 的机制其实并不适用于此。Keep Alive 机制开启后,TCP 层将在定时时间到后发送相应的 KeepAlive 探针以确定连接可用性。一般时间为 7200 s。失败后重试 10 次,每次超时时间 75 s。
(2) TCP KeepAlive 是用于检测连接的死活

心跳时间间隔选择:长连接,慢心跳。

(1)发送心跳包势必要先唤醒设备, 然后才能发送, 如果唤醒设备过于频繁, 或者直接导致设备无法休眠, 会大量消耗电量
(2)中移动2/3G下, NAT超时时间为5分钟, 中国电信3G则大于28分钟, 理想的情况下, 客户端应当以略小于NAT超时时间的间隔来发送心跳包。

影响长连接的寿命的因素
心跳维持长连接的弊端

1、高于正常频率发送心跳包来维持长连接,这样无疑会带来信令风暴
2、这类心跳包频率很短 造成信令资源的浪费
3、造成手机电量的耗费
信令风暴:网络受到终端信令的请求超过了网络各项信令处理的能力,引发拥塞甚至雪崩效应,导致网络不可用,我们称之为“信令风暴”

相关文章

  • IM+推送+心跳机制

    参考1参考2参考3参考4参考5 推送: 服务器给客户端发送消息开发者通过第三方推送服务提供商将信息直接下发给需要的...

  • Android 网络(五) 推送

    互联网推送服务原理:长连接+心跳机制(MQTT协议)Android推送技术研究Android实现推送方式解决方案a...

  • 触及用户的消息系统

    推送机制分类(根据使用场景) 外部推送机制 短信 邮件 微信 内部推送机制 push 桌面红点 消息中心 打点推送...

  • 移动端心跳包

    移动端心跳包 TCP的心跳机制 TCP协议,本身拥有一个KeepAlive机制,既然有了心跳机制,为什么还要在应用...

  • Netty心跳之IdleStateHandler

    概述:Netty提供了对心跳机制的天然支持,心跳可以检测远程端是否在线 心跳机制的优势: 心跳可以检测远程端是否在...

  • Socket心跳包机制

    Socket心跳包机制

  • Androi的消息推送机制

    Android消息推送机制研究1.基于HTTP协议的推送机制基于HTTP协议的推送机制是一种请求-响应模式,由于H...

  • 心跳机制

    心跳机制是定时发送一个自定义的结构体(心跳包),让对方知道自己还活着,以确保连接的有效性的机制。 网络中的接收...

  • 心跳机制

    websocket 一般 每隔 90 秒无操作则会自动断开 ,需要加入一个心跳机制 来防止 自断

  • 推送消息机制

    一、简介 iOS推送机制分为本地通知(Local Notifications)和远程推送(Remote Notif...

网友评论

    本文标题:IM+推送+心跳机制

    本文链接:https://www.haomeiwen.com/subject/qqpssttx.html