http://www.ox-holdings.com

或者服务器没有收到客户端的心跳,或者服务器没有收到客户端的心跳

摘要统一推送联盟旗下业务“推必达“官方网站现已上线(www.chinatuibida.com)。网站全面呈现了”推必达“的产品特点、产品能力,产品演示等。开发者可以通过网站上提供的方式进行试用。“推必达”初探当前,手机能耗越来越成为用户关注的焦点。传统的IP推送通道的维持,需要推送服务器和终端保持TCP长连接,即周期性发送“心跳”信息以保证连接。这一过程需要调用到手机射频发射模块,在短期提升手机发射功率后重新回到“信道监听”的模式。这种“尖峰”式的工作会对手机电池造成比连续数据传输更大的压力,加速手机的“掉电”。粗略测算,一般的Android手机每天有超过10%的电量被消耗在发送过度频繁的心跳上。更仔细的来看,推送通道所采用的心跳机制的核心是为了帮助服务器确定终端处于活跃的状态。然而,在移动通信网络中,底层的通信信令是一种天然的“心跳”的载体,相比较传统的推送服务机制,其不需要任何IP层的收发包(即不需要TCP连接),且没有任何额外的电量负担,手机只需处于正常的待机状态,即可收保证链路的完整性。同时,由于信令通道是电信级服务,其可以提供更好的可靠性、实时性以及系统冗余。基于此,统一推送联盟自去年成立以来即组织联盟内成员对相关技术进行论证探讨,提出了基于信令通道的”推必达“概念。随后,联盟积极组织联盟内运营商和终端厂商进行技术验证及联调实验。在2018年7月12日举办的“中国安卓开发者大会”上,联盟成员单位中国信息通信研究院,中国联通,中国移动,中国电信联合发布了“推必达”产品。”推必达“利用信令级通道高可靠能力,提供一种基于底层信令通道的推送方式,实现更加可靠的、更加省电的推送服务。(图1 推必达业务系统架构) 由于国外运营商和智能终端厂商的碎片化,尚无相关业务先例。 “推必达”业务是统一推送联盟响应国家自主创新的一次实践,其从概念的提出,技术验证,到产品的设计完全由国内研究机构,运营商,厂商自主完成。由于“推必达”基于电信信令通道,其可以实现在无数据网络、无wifi的情况下,实现消息传输,且无需开发者添加SDK。 由于运营商网络信令体系的标准化,“推必达”业务可以完美的屏蔽掉不同终端和操作系统的差异性。作为统一推送的一个补充,其与现有推送业务相结结合实现更可靠、节能的推送服务。目前,“推必达”的相关技术已经开放给一些终端厂商进行测试,争取在不远的未来可以大范围推广,并作为我国移动互联网的一项标准化基础服务。“推必达”产品特性“推必达”利用手机号寻址,通过运营商级信令通道下发至终端,由终端系统级进程解析。 具有无数据网络亦可达,无需常住后台亦可达,无App安装亦可达三大特性。“推必达”产品能力"推必达"相比较传统短信和推送具有明显优势,具有展示、留存、转化、分发四大能力。可以帮助应用开发者更好的触达用户,同时解决了用户终端中的垃圾短信问题,简化了一系列服务流程。竞品分析相较于竞品,推必达在多维度具有明显优势,是触达用户的首要选择。“推必达”的更多场景除了作为传统IP推送的有效补充,“推必达”也将提供给开发者一个新的流量入口。由于“推必达”是通信信令层的服务,因此天然具有跨平台能力;同时,其背后是基于手机号的账号体系,可以提供比IP通道更好的安全性(包括身份安全和信息安全),因此,基于“推必达”这一基础能力,开发者和手机厂商可以开发出更多的上层应用,为移动互联网生态提供丰富多彩的业务。账号体系能力是“推必达”作为基础能力的另一个特点。目前,电信基础业务(电话、短信)和互联网服务的账号体系是割裂开来的。同时,在移动互联网服务中,不同服务也基于不同的账号体系,用户难以使用一个账号享受所有的互联网服务,造成了不同服务之间的相互割裂。“推必达”天然拥有手机号码这一账号体系,可作为完整的第三方账号帮助开发者承载包括社交、IM、支付等需要身份验证的业务。同时,面向传统的金融、教育、办公、线下零售等垂直行业也可以完美的与现有基于手机号码的账号体系兼容。可以看到,“推必达”将作为连接基础电信服务和移动互联网服务的桥梁,使得我国开发者可以更好的利用国内完善的运营商网络体系创造更多的服务产品。(图2 推必达搭建基础电信服务和移动互联网服务的桥梁)One More Thing目前,推必达基础能力已经基本构建完成,并将此能力向联盟成员开放(相关文档请访问推必达官方网站:www.chinatuibida.com获取)。同时,联盟也将联合各成员单位推动“推必达”在各个领域的使用,打造基于“推必达”基础能力的更多服务,为我国打造自主移动生态,推动我国“互联网+”的发展贡献更多的力量。

本文摘抄自网络,原地标题:互联网推送服务原理:长连接+心跳机制(MQTT协议)

互联网推送消息的方式很常见,特别是移动互联网上,手机每天都能收到好多推送消息,经过研究发现,这些推送服务的原理都是维护一个长连接(要不不可能达到实时效果),但普通的socket连接对服务器的消耗太大了,所以才会出现像MQTT这种轻量级低消耗的协议来维护长连接,那么要如何维护长连接呢?

    互联网推送消息的方式很常见,特别是移动互联网上,手机每天都能收到好多推送消息,经过研究发现,这些推送服务的原理都是维护一个长连接(要不不可能达到实时效果),但普通的socket连接对服务器的消耗太大了,所以才会出现像MQTT这种轻量级低消耗的协议来维护长连接,那么要如何维护长连接呢?

    在写之前,我们首先了解一下为什么android维护长连接需要心跳机制,首先我们知道,维护任何一个长连接都需要心跳机制,客户端发送一个心跳给服务器,服务器给客户端一个心跳应答,这样就形成客户端服务器的一次完整的握手,这个握手是让双方都知道他们之间的连接是没有断开,客户端是在线的。如果超过一个时间的阈值,客户端没有收到服务器的应答,或者服务器没有收到客户端的心跳,那么对客户端来说则断开与服务器的连接重新建立一个连接,对服务器来说只要断开这个连接即可。那么在智能手机上的长连接心跳和在Internet上的长连接心跳有什么不同的目的呢?原因就在于智能手机使用的是移动无线网络,那么我们在讲长连接之前我们首先要了解无线移动网络的特点。

    在写之前,我们首先了解一下为什么android维护长连接需要心跳机制,首先我们知道,维护任何一个长连接都需要心跳机制,客户端发送一个心跳给服务器,服务器给客户端一个心跳应答,这样就形成客户端服务器的一次完整的握手,这个握手是让双方都知道他们之间的连接是没有断开,客户端是在线的。如果超过一个时间的阈值,客户端没有收到服务器的应答,或者服务器没有收到客户端的心跳,那么对客户端来说则断开与服务器的连接重新建立一个连接,对服务器来说只要断开这个连接即可。那么在智能手机上的长连接心跳和在Internet上的长连接心跳有什么不同的目的呢?原因就在于智能手机使用的是移动无线网络,那么我们在讲长连接之前我们首先要了解无线移动网络的特点。

1.无线移动网络的特点:

1.无线移动网络的特点:

        当一台智能手机连上移动网络时,其实并没有真正连接上Internet,运营商分配给手机的IP其实是运营商的内网IP,手机终端要连接上Internet还必须通过运营商的网关进行IP地址的转换,这个网关简称为NAT(NetWork Address Translation),简单来说就是手机终端连接Internet 其实就是移动内网IP,端口,外网IP之间相互映射。相当于在手机终端在移动无线网络这堵墙上打个洞与外面的Internet相连。原理图如下:(来源网络)

    GGSN(GateWay GPRS Support Note 网关GPRS支持节点)模块就实现了NAT功能,由于大部分的移动无线网络运营商为了减少网关NAT映射表的负荷,如果一个链路有一段时间没有通信时就会删除其对应表,造成链路中断,正是这种刻意缩短空闲连接的释放超时,原本是想节省信道资源的作用,没想到让互联网的应用不得以远高于正常频率发送心跳来维护推送的长连接。这也是为什么会有之前的信令风暴,微信摇收费的传言,因为这类的应用发送心跳的频率是很短的,既造成了信道资源的浪费,也造成了手机电量的快速消耗。

    当一台智能手机连上移动网络时,其实并没有真正连接上Internet,运营商分配给手机的IP其实是运营商的内网IP,手机终端要连接上Internet还必须通过运营商的网关进行IP地址的转换,这个网关简称为NAT(NetWork Address Translation),简单来说就是手机终端连接Internet 其实就是移动内网IP,端口,外网IP之间相互映射。相当于在手机终端在移动无线网络这堵墙上打个洞与外面的Internet相连。原理图如下:(来源网络)

2.android系统的推送和IOS的推送有什么区别:

        首先我们必须知道,所有的推送功能必须有一个客户端和服务器的长连接,因为推送是由服务器主动向客户端发送消息,如果客户端和服务器之间不存在一个长连接那么服务器是无法来主动连接客户端的。因而推送功能都是基于长连接的基础是上的。

        iOS长连接是由系统来维护的,也就是说苹果的IOS系统在系统级别维护了一个客户端和苹果服务器的长链接,IOS上的所有应用上的推送都是先将消息推送到苹果的服务器然后将苹果服务器通过这个系统级别的长链接推送到手机终端上,这样的的几个好处为:1.在手机终端始终只要维护一个长连接即可,而且由于这个长链接是系统级别的不会出现被杀死而无法推送的情况。2.省电,不会出现每个应用都各自维护一个自己的长连接。3.安全,只有在苹果注册的开发者才能够进行推送,等等。

       Android的长连接是由每个应用各自维护的,但是google也推出了和苹果技术架构相似的推送框架,C2DM,云端推送功能,但是由于google的服务器不在中国境内,其他的原因你懂的。所以导致这个推送无法使用,android的开发者不得不自己去维护一个长链接,于是每个应用如果都24小时在线,那么都得各自维护一个长连接,这种电量和流量的消耗是可想而知的。虽然国内也出现了各种推送平台,但是都无法达到只维护一个长连接这种消耗的级别。

图片 1

3.推送的实现方式:

一:客户端不断的查询服务器,检索新内容,也就是所谓的pull 或者轮询方式

二:客户端和服务器之间维持一个TCP/IP长连接,服务器向客户端push

三:服务器又新内容时,发送一条类似短信的信令给客户端,客户端收到后从服务器中下载新内容,也就是SMS的推送方式。

苹果的推送系统和googleC2DM推送系统其实都是在系统级别维护一个TCP/IP长连接,都是基于第二种的方式进行推送的。第三种方式由于运营商没有免费开放这种信令导致了这种推送在成本上是无法接受的,虽然这种推送的方式非常的稳定,高效和及时。

 

    GGSN(GateWay GPRS Support Note 网关GPRS支持节点)模块就实现了NAT功能,由于大部分的移动无线网络运营商为了减少网关NAT映射表的负荷,如

果一个链路有一段时间没有通信时就会删除其对应表,造成链路中断,正是这种刻意缩短空闲连接的释放超时,原本是想节省信道资源的作用,没想到让互联网

的应用不得以远高于正常频率发送心跳来维护推送的长连接。这也是为什么会有之前的信令风暴,微信摇收费的传言,因为这类的应用发送心跳的频率是很短的,

郑重声明:本文版权归新匍京a奥门-最全网站手机版app官方下载所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。