CN103618665A - 一种向客户端推送消息的方法 - Google Patents
一种向客户端推送消息的方法 Download PDFInfo
- Publication number
- CN103618665A CN103618665A CN201310666387.XA CN201310666387A CN103618665A CN 103618665 A CN103618665 A CN 103618665A CN 201310666387 A CN201310666387 A CN 201310666387A CN 103618665 A CN103618665 A CN 103618665A
- Authority
- CN
- China
- Prior art keywords
- client
- server
- connection
- push message
- lasting connection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种向客户端推送消息的方法,包括:一种向客户端推送消息的方法,应用于包括服务器端和客户端的通信***中,其特征在于,包括:所述客户端创建连接线程的步骤;所述客户端通过所述连接线程与所述服务器建立持久连接的步骤;所述客户端通过所述持久连接向所述服务器注册用户的步骤;所述客户端通过所述持久连接登录所述服务器的步骤;所述服务器通过所述持久连接向所述客户端推送消息的步骤。本发明的向智能客户终端主动推送消息的方法成本低,消耗带宽和电量小,并且消息更新及时。
Description
技术领域
本发明涉及一种推送消息的方法,特别是涉及一种向智能客户端及时推送消息的方法。
背景技术
随着使用智能手机的人越来越多,智能手机的处理能力越来越强大,智能手机联网的需求越来越强,尤其是对推送消息的需求越来越强,比如实时更新消息,即时信息分享等等。
常见的推送技术方案有如下几种:
服务器端通过SMS和客户端的通信,这是一个可以实时操作的方案,不过成本较高,因为需要向运营商或者代理购买短消息发送网关。
客户端定时访问服务器端口,主动定时获取最新消息;这种方案需要考虑主动获取信息的频率,太快则消耗大量的带宽和电量,太慢则导致消息不能及时更新。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种向客户端推送消息的方法,用于解决现有技术成本高,消耗带宽和电量大或消息不能及时更新的问题。
为实现上述目的及其他相关目的,本发明提供一种向客户端推送消息的方法,包括:一种向客户端推送消息的方法,应用于包括服务器端和客户端的通信***中,其特征在于,包括:所述客户端创建连接线程的步骤;所述客户端通过所述连接线程与所述服务器建立持久连接的步骤;所述客户端通过所述持久连接向所述服务器注册用户的步骤;所述客户端通过所述持久连接登录所述服务器的步骤;所述服务器通过所述持久连接向所述客户端推送消息的步骤。
优选地,上述客户端通过所述持久连接登录所述服务器的步骤与所述服务器通过所述持久连接向所述客户端推送消息的步骤之间,还包括所述客户端注册***的步骤,所述***监听服务器推送的数据包,再通知要进行显示的程序。
更优选地,根据权利要求1所述的向客户端推送消息的方法,其特征在于,所述客户端通过所述持久连接登录所述服务器的步骤与所述服务器通过所述持久连接向所述客户端推送消息的步骤之间,还包括设置连接***的步骤,所述连接***用于监听所述持久连接的连接错误。
如上所述,本发明的向客户端推送消息的方法,具有以下有益效果:向智能客户终端主动推送消息的方法成本低,消耗带宽和电量小,并且消息更新及时。
附图说明
图1显示为本发明向客户端推送消息的方法所用服务器结构示意图;
图2显示为本发明向客户端推送消息的方法所用客户端结构示意图;
图3显示为本发明向客户端推送消息的方法流程图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
请参阅附图。需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
本发明的向智能机主动推送消息的方法应用于具有服务器和以智能手机为代表的客户端构成的***中。下面结合图1和图2对服务器端和客户端的结构和工作过程分别进行介绍。首先参阅图1,服务器端包括三个模块:
XMPP服务模块,负责与客户端通信,例如用户注册和身份认证,并发送推送通知消息;
Web服务模块,包括一个HTTP服务器,负责接收用户的Web请求;
连接管理模块,用于管理Socket连接。
其中XMPP服务模块包括四个部分:会话(session)管理器,负责管理客户端与服务器之间的会话,比如连接断开,删除session以及建立连接,添加session等等;权限管理器,负责客户端用户认证管理;登录状态管理器,负责管理客户端用户的登录状态,以及通知管理器,负责实现服务器向客户端推送消息功能。
本例中,连接管理模块及客户端采用了MINA框架来进行连接管理,由于客户端与服务器的信息往来(包括心跳包)都是通过Session传递的,MINA主要负责XMPP服务模块的session创建、session开启、session关闭、信息收取等客户端与服务器建立Socket连接。
下面对连接管理模块的主要实现类进行介绍:
IOAcceptor类:监听指定的端口,处理新的网络连接;一旦一个新的连接到达后,IOAcceptor就产生一个session,后续所有从这个IP和端口发送过来的请求就将通过这个Session被处理。
PacketEncoder/Decoder类:在Session创建后,负责将后续所有的数据包放入过滤器链中,通过过滤器将原始的字节码转变成高层的对象。最后数据包或对象被传送给Handler做业务逻辑处理;
下面参阅图2,图2显示为客户端结构框图。本例中,客户端由以下几个模块组成:
通信模块,负责与服务器建立通信,通过创建3个线程来进行处理。分别负责消息的发送、接收、心跳信息的发送;
解析模块,主要用来解析XML数据流。根据解析元素不同类型封装成不同的数据对象。
数据模块,定义整个客户端中大部分的数据类型和对象;
加密模块,对发送和接收的消息进行加解密,以确保通讯数据的安全。
下面结合图3介绍客户端连接服务器的过程。本例中,使用XMPP协议,所以连接服务器要分为三步:连接,注册,登陆。可以用一个栈来保存要执行的任务,即ConnectTask,RegisterTask,LoginTask,之后各模块再从该栈中领取任务执行,这样就可以使任务得到有序执行。图3中,步骤S1表示服务器端创建通知线程。本例中,客户端的通信模块包括通知服务类,该通知服务类创建一个单线程,让其对服务器进行连接。
步骤S2表示连接服务器,本例中,连接服务器用的是Executors.newSingleThreadExecutor()方法,从而可以连续提交任务。
步骤S3表示注册用户。
步骤S4表示用户登录,即执行LoginTask。本例中,在LoginTask里,客户端通信模块登陆了服务器端后,注册一个***,用于监听服务器push的数据包(Packet),再通过发送广播的方式来通知要进行显示的程序。
步骤S5表示判断连接是否成功,如果未成功则返回步骤S1重新建立连接。连接线程在连接,注册,登陆的过程中,都有可能出错,都可能会失败,这就需要一种重连的机制。本例中,通过在Androidpn里建立新线程来进行重试,其重试可以按照如下规则:客户端成功连接服务器后,服务器会建立一个唯一session保持与客户端连接,如果是连接过程出现连接失败,直接返回步骤S1重新建立连接即可;如果是注册、登录过程出现连接失败,则客户端直接带着session ID与服务器进行连接。
步骤S6表示连接建立成功后,服务器可以随时向客户端推送消息。
上述步骤中,登陆服务器后,也有可能出错,所以本例中,在登陆后会设置一个连接***,用于监听连接出错的时候进行重连。
另外,在登陆过程中,还可以包括登录错误处理步骤。如果登录出错的原因是账号和密码无效,则应该把客户端本地保存的帐号和密码都清掉,再重新进行连接,否则会永远都登陆不上服务器端。可以通过判断服务器端返回的操作码来判断登录出错的原因,本例中,如果用户名密码无效导致登录操作出错,则服务器返回操作码401。
需要说明的是,上述实施例虽然基于智能手机作为客户端,但本发明的思想并不局限于此。实际应用中,客户端可以是软件,并且可以安装于多种硬件平台上,比如普通个人电脑、笔记本或者平板电脑等等。
综上所述,本发明的向智能客户终端主动推送消息的方法成本低,消耗带宽和电量小,并且消息更新及时。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (5)
1.一种向客户端推送消息的方法,应用于包括服务器端和客户端的通信***中,其特征在于,包括:
所述客户端创建连接线程的步骤;
所述客户端通过所述连接线程与所述服务器建立持久连接的步骤;
所述客户端通过所述持久连接向所述服务器注册用户的步骤;
所述客户端通过所述持久连接登录所述服务器的步骤;
所述服务器通过所述持久连接向所述客户端推送消息的步骤。
2.根据权利要求1所述的向客户端推送消息的方法,其特征在于,所述客户端通过所述持久连接登录所述服务器的步骤与所述服务器通过所述持久连接向所述客户端推送消息的步骤之间,还包括所述客户端注册***的步骤,所述***监听服务器推送的数据包,再通知要进行显示的程序。
3.根据权利要求1所述的向客户端推送消息的方法,其特征在于,所述客户端通过所述持久连接登录所述服务器的步骤与所述服务器通过所述持久连接向所述客户端推送消息的步骤之间,还包括设置连接***的步骤,所述连接***用于监听所述持久连接的连接错误。
4.根据权利要求1所述的向客户端推送消息的方法,其特征在于,所述客户端通过所述持久连接登录所述服务器的步骤中还包括登录错误处理的步骤,所述登录错误处理的步骤包括:如果所述登录错误处理是由于用户名密码错误引发,则清除客户端本地保存的用户名和密码。
5.根据权利要求1所述的向客户端推送消息的方法,其特征在于,所述客户端通过所述持久连接登录所述服务器的步骤与所述服务器通过所述持久连接向所述客户端推送消息的步骤之间,还包括判断所述持久连接是否出错的步骤,如果所述持久连接出错,则执行重连。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310666387.XA CN103618665A (zh) | 2013-12-10 | 2013-12-10 | 一种向客户端推送消息的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310666387.XA CN103618665A (zh) | 2013-12-10 | 2013-12-10 | 一种向客户端推送消息的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103618665A true CN103618665A (zh) | 2014-03-05 |
Family
ID=50169369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310666387.XA Pending CN103618665A (zh) | 2013-12-10 | 2013-12-10 | 一种向客户端推送消息的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103618665A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107302599A (zh) * | 2017-08-24 | 2017-10-27 | 太仓安顺财务服务有限公司 | 一种移动互联网中多应用融合消息推送平台 |
CN107426081A (zh) * | 2017-04-18 | 2017-12-01 | 贵阳朗玛信息技术股份有限公司 | 一种实时消息传输方法及*** |
CN107454184A (zh) * | 2017-08-22 | 2017-12-08 | 深圳先进技术研究院 | Android客户端与服务器建立稳定网络连接的方法 |
CN110448892A (zh) * | 2019-07-18 | 2019-11-15 | 江西中业光文化科技有限公司 | 基于增强现实的游戏实现方法及*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050251557A1 (en) * | 2004-05-06 | 2005-11-10 | Hitachi., Ltd. | Push-type information delivery method, push-type information delivery system, information delivery apparatus and channel search apparatus based on presence service |
CN1842015A (zh) * | 2005-04-01 | 2006-10-04 | 华为技术有限公司 | 向网络会议客户端发送信息的实现方法 |
CN102035893A (zh) * | 2010-12-23 | 2011-04-27 | 中国农业银行股份有限公司 | 一种服务器主动推送数据的方法和*** |
CN102413436A (zh) * | 2011-09-14 | 2012-04-11 | 华为技术有限公司 | 信息传送方法和***、以及移动终端上的浏览器 |
CN103051715A (zh) * | 2012-12-24 | 2013-04-17 | 东软熙康健康科技有限公司 | 一种向终端发布通知的方法、相关装置及*** |
-
2013
- 2013-12-10 CN CN201310666387.XA patent/CN103618665A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050251557A1 (en) * | 2004-05-06 | 2005-11-10 | Hitachi., Ltd. | Push-type information delivery method, push-type information delivery system, information delivery apparatus and channel search apparatus based on presence service |
CN1842015A (zh) * | 2005-04-01 | 2006-10-04 | 华为技术有限公司 | 向网络会议客户端发送信息的实现方法 |
CN102035893A (zh) * | 2010-12-23 | 2011-04-27 | 中国农业银行股份有限公司 | 一种服务器主动推送数据的方法和*** |
CN102413436A (zh) * | 2011-09-14 | 2012-04-11 | 华为技术有限公司 | 信息传送方法和***、以及移动终端上的浏览器 |
CN103051715A (zh) * | 2012-12-24 | 2013-04-17 | 东软熙康健康科技有限公司 | 一种向终端发布通知的方法、相关装置及*** |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107426081A (zh) * | 2017-04-18 | 2017-12-01 | 贵阳朗玛信息技术股份有限公司 | 一种实时消息传输方法及*** |
CN107454184A (zh) * | 2017-08-22 | 2017-12-08 | 深圳先进技术研究院 | Android客户端与服务器建立稳定网络连接的方法 |
CN107454184B (zh) * | 2017-08-22 | 2020-07-24 | 深圳先进技术研究院 | Android客户端与服务器建立稳定网络连接的方法 |
CN107302599A (zh) * | 2017-08-24 | 2017-10-27 | 太仓安顺财务服务有限公司 | 一种移动互联网中多应用融合消息推送平台 |
CN110448892A (zh) * | 2019-07-18 | 2019-11-15 | 江西中业光文化科技有限公司 | 基于增强现实的游戏实现方法及*** |
CN110448892B (zh) * | 2019-07-18 | 2023-08-22 | 江西中业光文化科技有限公司 | 基于增强现实的游戏实现方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8799400B2 (en) | System and method for managing multiple queues of non-persistent messages in a networked environment | |
US20140372516A1 (en) | System and method for providing a scalable translation between polling-based clients and connection-based message queues | |
EP2770788A1 (en) | Notification push method, device, and system | |
KR102208935B1 (ko) | 데이터 교환을 위한 컨텍스트를 설정하는 http 프로토콜을 통한 메시징 api | |
CN107528891B (zh) | 一种基于WebSocket的自动集群方法及其*** | |
CN104009938A (zh) | 基于路由层面的长连接的方法和*** | |
KR101416280B1 (ko) | 이벤트 처리 시스템 및 방법 | |
CN104243230B (zh) | 一种获取Linux服务器中监控数据的方法和装置 | |
CN103297390A (zh) | 服务器反向连接客户端的实现方法 | |
CN103618665A (zh) | 一种向客户端推送消息的方法 | |
CN107682460A (zh) | 一种分布式存储集群数据通信方法及*** | |
CN103858389A (zh) | 一种传输会话的方法、客户端及Push服务器 | |
CN112437153A (zh) | 一种设备联动处理方法及装置 | |
CN112187903A (zh) | 一种消息推送方法、装置及消息服务*** | |
CN111427703A (zh) | 工业数据实时展示方法及*** | |
CN102917082A (zh) | 穿透网络地址转换的消息推送方法及*** | |
CN105262626B (zh) | 一种满足云中gis高性能服务需求的监控*** | |
WO2024103943A1 (zh) | 一种业务处理方法、装置、存储介质及设备 | |
CN100382493C (zh) | 一种实现业务的***及方法 | |
CN110113437B (zh) | 一种用于提供web服务的增强的可靠性的方法和装置 | |
US8060568B2 (en) | Real time messaging framework hub to intercept and retransmit messages for a messaging facility | |
CN105337811B (zh) | 基于Radius服务器的监控***及监控方法 | |
CN107896176A (zh) | 一种计算节点的处理方法、智能终端及存储介质 | |
Lee et al. | Logical push framework for real-time SNS processing | |
CN111641664B (zh) | 一种爬虫设备业务请求方法、装置、***和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140305 |
|
RJ01 | Rejection of invention patent application after publication |