[发明专利]基于安卓的利用socket推送消息的方法和系统在审
申请号: | 201510568152.6 | 申请日: | 2015-09-08 |
公开(公告)号: | CN105610888A | 公开(公告)日: | 2016-05-25 |
发明(设计)人: | 周国富;肖顺心;李伟;罗智杰 | 申请(专利权)人: | 华南师范大学;深圳市国华光电科技有限公司;深圳市国华光电研究院 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L29/06 |
代理公司: | 广州嘉权专利商标事务所有限公司 44205 | 代理人: | 冯剑明 |
地址: | 510631 广东省广州市华南*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 利用 socket 推送 消息 方法 系统 | ||
技术领域
本发明涉及移动互联网领域,特别是一种基于安卓的利用socket推送消息的方法 和系统。
背景技术
目前主流的四种基于安卓(Android)系统的消息推送方式分别为:XMPP (ExtensibleMessageingandPresenceProtocol:可扩展消息与存在协议)、GCM服务 (GoogleCloudMessaging)、MQTT协议以及使用HTTP轮循方式。其中XMPP协议较复杂、冗余 (基于XML)、费流量、费电,部署硬件成本高;GCM是Google推出的云消息服务,即第二代的 G2DM,其使用受到安卓版本限制,必须大于2.2版本方可使用,该服务在国内不够稳定、需要 用户绑定Google帐号,受限于Google;MQTT是轻量级的、基于代理的“发布/订阅”模式的消 息传输协议,目前来说不够成熟、实现较复杂,服务端组件rsmb不开源,部署硬件成本较高; HTTP轮询方式是定时向HTTP服务端接口(WebServiceAPI)获取最新消息,该方式的实时 性差。现在使用比较多的推送功能是XMPP,如附图1所示,XMPP中定义了三个角色,客户端, 服务器,网关。通信能够在这三者的任意两个之间双向发生。服务器同时承担了客户端信息 记录,连接管理和信息的路由功能。网关承担着与异构即时通信系统的互联互通,异构系统 可以包括SMS(短信),MSN,ICQ等。基本的网络形式是单客户端通过TCP/IP连接到单服务器, 然后在之上传输XML。
Socket方式协议较以上几种协议都更简单,而且稳定,不依赖于特定的公司,很成 熟,部署成本不高,实时性最强,尤其是在聊天软件中最能体现。Socket的英文原义是“孔” 或“插座”。作为BSDUNIX的进程通信机制,取后一种意思。通常也称作"套接字",用于描述 IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。 在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个 Socket,并绑定到一个端口上,不同的端口对应于不同的服务。Socket正如其英文原意那 样,像一个多孔插座。一台主机犹如布满各种插座的房间,每个插座有一个编号,有的插座 提供220伏交流电,有的提供110伏交流电,有的则提供有线电视节目。客户软件将插头插到 不同编号的插座,就可以得到不同的服务。
使用socket连接首先要在外部建立一个socket服务器,手机端向服务器发送 socket请求,建立一个长连接,这种长连接是稳定,实时的,任何时候有服务器想对客户端 推送消息都可以马上收到,理论上socket是会一直保持连接状态的,但是实际应用中 socket的长连接会遇到两个问题:第一,由于网络不稳定或服务器负载的原因,socket可能 会断开,这样就不能接收推送;第二,由于安卓系统会在内存不够时杀死应用,用户有时也 会手动关闭应用,造成socket断开,无法达到我们想要的功能。
发明内容
本发明的目的在于克服现有技术问题的缺陷,提供一种基于安卓的利用socket推 送消息的方法和系统。
根据本发明的一个方面,提供了一种基于安卓的利用socket推送消息的方法,包 括如下步骤:
A:服务器端启动并开启socket;
B:基于安卓的客户端开启service并在其中启动一线程,在该线程中发起socket 连接请求;
C:服务器端和客户端建立socket长连接,以用于服务器端和客户端之间进行消息 推送;
D:客户端按一预频率向服务器端发送心跳包,以进行心跳检测。
优选地,所述service运行在安卓系统后台。
优选地,所述心跳检测包括如下步骤:
D1:客户端每隔一个时间间隔发送一个心跳包给服务器端,并同时启动一个超时 定时器;
D2:如果客户端收到服务器的应答包,则删除超时定时器;
D3:如果客户端的超时定时器超时,依然没有收到应答包,则进行重连。
优选地,所述时间间隔设置为周期性时间间隔。
优选地,所述心跳包设置为小数据包或者只包含包头的空包。
优选地,所述应答包设置为小数据包或者只包含包头的空包。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华南师范大学;深圳市国华光电科技有限公司;深圳市国华光电研究院,未经华南师范大学;深圳市国华光电科技有限公司;深圳市国华光电研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510568152.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种文本文件并行上传方法及装置
- 下一篇:一种流媒体的调度方法及装置