消息通信的方法、服务器和系统技术方案

技术编号:14550490 阅读:45 留言:0更新日期:2017-02-04 23:35
本发明专利技术公开了一种消息通信的方法、服务器和系统,涉及移动互联网技术领域。本发明专利技术实施例在客户端发起消息查询请求时,如果没有消息则服务器将客户端的消息查询请求挂起,阻塞客户端的消息线程,防止客户端重复发起查询请求,以减少终端功耗,一旦有客户端的消息,服务器会立即将消息发送给客户端,从而提高消息的实时性,并且,客户端不需要维护连接,因此,降低了客户端业务逻辑的复杂度。

Message communication method, server and system

The invention discloses a method, a server and a system for message communication. The embodiment of the invention sends a message query request in the client, if there is no message server client message query requests pending, blocking the client message thread, prevent repeat client initiates request, in order to reduce the power consumption of the terminal, once the client message, the server will immediately send a message to the client, so as to improve the real-time performance the message, and the client does not need to maintain the connection, therefore, reduce the complexity of client business logic.

【技术实现步骤摘要】

本专利技术涉及移动互联网
,特别涉及一种消息通信的方法、服务器和系统
技术介绍
在移动互联网应用中需要构建客户端与服务器进行消息通信的机制,或者多个客户端通过服务器进行消息通信的机制。目前轮询、长连接等消息通信机制广泛应用于各个移动应用中。轮询是指客户端定时向服务器发起消息查询的消息通信机制,具体地,客户端在每个查询周期都会向服务器发起消息查询请求,如果服务器没有发送给该客户端的消息,则返回空消息列表,如果有发送给该客户端的消息,则返回该消息。轮询方式的弊端在于消息实时性不强,并且客户端耗电量较大。长连接是指服务器和客户端维持一条连接用于收发消息的消息通信机制,具体地,客户端使用Socket连接向服务器发起长连接,客户端和服务器同时维护该连接的状态,所有的消息发送及接收均使用该连接。长连接方式的弊端在于客户端和服务器均需要维护该长连接,业务逻辑复杂。
技术实现思路
本专利技术实施例所要解决的一个技术问题是:解决现有消息通信机制存在的消息实时性差、客户端耗电量大以及业务逻辑复杂的问题。根据本专利技术实施例的一个方面,提出一种消息通信的方法,包括:服务器响应于客户端发送的消息查询请求,检查当前是否有发送给所述客户端的消息;如果当前没有发送给所述客户端的消息,服务器将所述客户端的消息查询请求挂起,等待发送给所述客户端的消息;如果当前有发送给所述客户端的消息,服务器释放所述客户端的消息查询请求,并且将所述客户端的消息发送给所述客户端。在一个实施例中,服务器将所述客户端的消息发送给所述客户端包括:服务器将所述客户端的消息和表示所述客户端的消息的令牌发送给所述客户端。在一个实施例中,消息通信的方法还包括:服务器响应于客户端发送的另一消息查询请求,其中携带一令牌,判断所述另一消息查询请求中携带的令牌是否为最近一次发送给所述客户端的令牌;如果所述另一消息查询请求中携带的令牌是最近一次发送给所述客户端的令牌,服务器释放该令牌对应的消息;如果所述另一消息查询请求中携带的令牌不是最近一次发送给所述客户端的令牌,服务器向客户端重新发送最近一次发送给所述客户端的令牌以及该令牌对应的消息。在一个实施例中,消息通信的方法还包括:客户端向服务器发送消息查询请求,并且等待服务器的响应,在接收到服务器的响应之前不再发送消息查询请求。在一个实施例中,消息通信的方法还包括:客户端向服务器发送另一消息查询请求,其中携带最近一次接收到的服务器发送的令牌,以表示本客户端已经接收到该令牌对应的消息。根据本专利技术实施例的再一个方面,提出一种消息通信的服务器,包括:消息检查模块,用于响应于客户端发送的消息查询请求,检查当前是否有发送给所述客户端的消息;消息挂起模块,用于如果当前没有发送给所述客户端的消息,将所述客户端的消息查询请求挂起,等待发送给所述客户端的消息;消息发送模块,用于如果当前有发送给所述客户端的消息,释放所述客户端的消息查询请求,并且将所述客户端的消息发送给所述客户端。在一个实施例中,消息发送模块包括:请求释放单元,用于如果当前有发送给所述客户端的消息,释放所述客户端的消息查询请求;消息发送单元,在用于将所述客户端的消息发送给所述客户端时,具体用于将所述客户端的消息和表示所述客户端的消息的令牌发送给所述客户端。在一个实施例中,消息通信的服务器还包括:令牌判断模块,用于响应于客户端发送的另一消息查询请求,其中携带一令牌,判断所述另一消息查询请求中携带的令牌是否为最近一次发送给所述客户端的令牌;消息释放模块,用于如果所述另一消息查询请求中携带的令牌是最近一次发送给所述客户端的令牌,释放该令牌对应的消息;消息重发模块,用于如果所述另一消息查询请求中携带的令牌不是最近一次发送给所述客户端的令牌,向客户端重新发送最近一次发送给所述客户端的令牌以及该令牌对应的消息。根据本专利技术实施例的又一个方面,提出一种消息通信的系统,包括:上述的服务器和客户端,客户端用于向服务器发送消息查询请求,并且等待服务器的响应,在接收到服务器的响应之前不再发送消息查询请求。在一个实施例中,客户端还用于向服务器发送另一消息查询请求,其中携带最近一次接收到的服务器发送的令牌,以表示本客户端已经接收到该令牌对应的消息。本专利技术实施例至少具有以下优点:一方面,在客户端发起消息查询请求时,如果没有消息则服务器将客户端的消息查询请求挂起,阻塞客户端的消息线程,防止客户端重复发起查询请求,以减少终端功耗,一旦有客户端的消息,服务器会立即将消息发送给客户端,从而提高消息的实时性,并且,客户端不需要维护连接,因此,降低了客户端业务逻辑的复杂度。再一方面,服务器在发送消息的同时会发送一个表示该消息的令牌,客户端发起新的消息查询请求时会携带该令牌,以表明自己接收到了该消息,服务器可以释放该消息,从而节省处理资源;如果新的消息查询请求携带的不是最近一次的令牌,则服务器就会知道上次发送的消息客户端没有接收到,会重新发送一次消息,以保证客户端接收到消息。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术消息通信的方法一个实施例的流程示意图。图2是本专利技术消息通信的方法再一个实施例的流程示意图。图3是本专利技术两客户端通过服务器进行消息通信的流程示意图。图4是本专利技术消息通信的系统一个实施例的结构示意图。图5是本专利技术消息通信的服务器一个实施例的结构示意图。图6是本专利技术消息通信的服务器再一个实施例的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本专利技术及其应用或使用的任何限制。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例提出一种新的消息通信机制,以解决现有消息通信机制存在的消息实时性差、客户端耗电量大以及业务逻辑复杂的问题。本文档来自技高网...

【技术保护点】
一种消息通信的方法,包括:服务器响应于客户端发送的消息查询请求,检查当前是否有发送给所述客户端的消息;如果当前没有发送给所述客户端的消息,服务器将所述客户端的消息查询请求挂起,等待发送给所述客户端的消息;如果当前有发送给所述客户端的消息,服务器释放所述客户端的消息查询请求,并且将所述客户端的消息发送给所述客户端。

【技术特征摘要】
1.一种消息通信的方法,包括:
服务器响应于客户端发送的消息查询请求,检查当前是否有发送
给所述客户端的消息;
如果当前没有发送给所述客户端的消息,服务器将所述客户端的
消息查询请求挂起,等待发送给所述客户端的消息;
如果当前有发送给所述客户端的消息,服务器释放所述客户端的
消息查询请求,并且将所述客户端的消息发送给所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述服务器将所述
客户端的消息发送给所述客户端包括:
服务器将所述客户端的消息和表示所述客户端的消息的令牌发送
给所述客户端。
3.根据权利要求2所述的方法,其特征在于,还包括:
服务器响应于客户端发送的另一消息查询请求,其中携带一令牌,
判断所述另一消息查询请求中携带的令牌是否为最近一次发送给所述
客户端的令牌;
如果所述另一消息查询请求中携带的令牌是最近一次发送给所述
客户端的令牌,服务器释放该令牌对应的消息;
如果所述另一消息查询请求中携带的令牌不是最近一次发送给所
述客户端的令牌,服务器向客户端重新发送最近一次发送给所述客户
端的令牌以及该令牌对应的消息。
4.根据权利要求1所述的方法,其特征在于,还包括:
客户端向服务器发送消息查询请求,并且等待服务器的响应,在
接收到服务器的响应之前不再发送消息查询请求。
5.根据权利要求3所述的方法,其特征在于,还包括:
客户端向服务器发送另一消息查询请求,其中携带最近一次接收
到的服务器发送的令牌,以表示本客户端已经接收到该令牌对应的消
息。
6.一种消息通信的服务器,包括:
消息检查模块,用于响应于客户端发送的消息查询请求,检查当
前是否有发送给所述客户端...

【专利技术属性】
技术研发人员:宋平波杨翊平
申请(专利权)人:中国电信股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1