一种转发消息的方法、系统及服务器的制造方法

文档序号:7782437阅读:266来源:国知局
一种转发消息的方法、系统及服务器的制造方法
【专利摘要】本发明适用于通信【技术领域】,提供了一种转发消息的方法、系统及服务器,所述方法包括:服务器接收客户端发送的消息;服务器根据所述消息判断需要转发所述消息至实时客户端还是拉取客户端;如果需要转发所述消息至实时客户端,则服务器实时发送所述消息至实时客户端;如果需要转发所述消息至拉取客户端,则服务器先暂存所述消息,当拉取客户端到服务器拉取消息时,再转发所述消息至拉取客户端。本发明,服务器既可以支持实时推送方式,也可以支持定期拉取方式,实现了客户端之间、客户端与服务器之间既可以进行实时通信,也可以进行非实时通信。
【专利说明】一种转发消息的方法、系统及服务器
【技术领域】
[0001]本发明属于通信【技术领域】,尤其涉及一种转发消息的方法、系统及服务器。
【背景技术】
[0002]目前,客户端和服务器进行通信时,主要采用两种方式进行通信,一种是实时推送方式,另一种是定期拉取方式。
[0003]实时推送方式是客户端与服务器之间进行消息的实时交互;定期拉取方式是客户端定期从服务器上拉取消息。
[0004]随着通信技术的发展,人类的通信需求越来越高。当今只能支持其中一种通信方式的服务器已经满足不了用户的需求,迫切需要一种既能支持实时推送方式,又能支持定期拉取方式的服务器。

【发明内容】

[0005]本发明实施例提供了一种转发消息的方法、系统及服务器,旨在解决现有技术提供的服务器无法同时支持实时推送方式和定期拉取方式这两种通信方式的问题。
[0006]一方面,提供一种转发消息的方法,所述方法包括:
[0007]服务器接收客户端发送的消息;
[0008]服务器根据所述消息判断需要转发所述消息至实时客户端还是拉取客户端;
[0009]如果需要转发所述消息至实时客户端,则服务器实时发送所述消息至实时客户端;
[0010]如果需要转发所述消息至拉取客户端,则服务器先暂存所述消息,当拉取客户端到服务器拉取消息时,再转发所述消息至拉取客户端。
[0011]进一步地,所述客户端是实时客户端或拉取客户端。
[0012]进一步地,所述服务器先暂存所述消息,当拉取客户端到服务器拉取消息时,再转发所述消息至拉取客户端包括:
[0013]服务器把所述消息暂存到第一队列;
[0014]当拉取客户端到服务器拉取消息时,服务器将所述第一队列中存储的所述消息存入第二队列中,同时使所述第一队列为空,拉取客户端从所述第二队列中拉取所述消息。
[0015]进一步地,在所述拉取客户端从所述第二队列中拉取所述消息的同时,若服务器接收到新的需要转发给拉取客户端的消息,则暂存所述新的需要转发给拉取客户端的消息至第一队列中,等待下一次被拉取客户端拉取。
[0016]另一方面,提供一种服务器,所述服务器包括:
[0017]连接建立单元,用于与客户端建立连接;
[0018]消息接收单元,用于接收客户端发送的消息;
[0019]客户端识别单元,用于根据所述消息判断需要转发所述消息至实时客户端还是拉取客户端;[0020]消息实时发送单元,用于如果需要转发所述消息至实时客户端,则实时发送所述消息至实时客户端;
[0021]消息拉取单元,用于如果需要转发所述消息至拉取客户端,则先暂存所述消息,当拉取客户端到服务器拉取消息时,再转发所述消息至拉取客户端。
[0022]进一步地,所述客户端是实时客户端或拉取客户端。
[0023]进一步地,所述消息拉取单元包括:
[0024]消息暂存子单元,用于把所述消息暂存到第一队列;
[0025]消息拉取子单元,用于当拉取客户端到服务器拉取消息时,将所述第一队列中存储的所述消息存入第二队列中,同时使所述第一队列为空,拉取客户端从所述第二队列中拉取所述消息。
[0026]进一步地,所述消息拉取子单元还用于,在所述拉取客户端从所述第二队列中拉取所述消息的同时,若接收到新的需要转发给拉取客户端的消息,则暂存所述新的需要转发给拉取客户端的消息至第一队列中,等待下一次被拉取客户端拉取。
[0027]再一方面,提供一种转发消息的系统,所述系统包括至少两个客户端,与所述客户端连接的如上所述的服务器。
[0028]在本发明实施例,服务器接收到客户端发送的消息后,可以将消息直接转发给实时客户端,也可以将接收到的消息先暂存在本地,等到拉取客户端来拉取消息时,再将接收到的消息转发给拉取客户端。服务器既可以支持实时推送方式,也可以支持定期拉取方式。实现了客户端之间、客户端与服务器之间既可以进行实时通信,也可以进行非实时通信。
【专利附图】

【附图说明】
[0029]图1是本发明实施例一提供的转发消息的方法的实现流程图;
[0030]图2是本发明实施例二提供的服务器的结构框图;
[0031]图3是本发明实施例一提供的转发消息的系统的结构框图。
【具体实施方式】
[0032]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0033]在本发明实施例中,服务器接收到客户端发送的消息后,可以将消息直接转发给实时客户端,也可以将接收到的消息先暂存在本地,等到拉取客户端来拉取消息时,再将接收到的消息转发给拉取客户端。服务器既可以支持实时推送方式,也可以支持定期拉取方式。
[0034]以下结合具体实施例对本发明的实现进行详细描述:
[0035]实施例一
[0036]图1示出了本发明实施例一提供的转发消息的方法的实现流程,以服务器侧为例来进行说明,详述如下:
[0037]在步骤SlOl中,服务器接收客户端发送的消息。
[0038]在本实施例中,客户端与服务器建立连接,服务器验证客户端的用户名密码合法性,如果合法,则建立连接成功,如果非法,则断开连接。
[0039]其中,客户端是实时客户端或拉取客户端。实时客户端包括Iinux嵌入式设备、智能手机、PC客户端;拉取客户端是基于拉取模式的客户端,比如安装有浏览器的客户端。
[0040]客户端调用服务器的接口客户端代理,把客户端需要发送给服务器的消息封装成服务器规定的消息格式发送给服务器。
[0041]在步骤S102中,服务器根据所述消息判断需要转发所述消息至实时客户端还是拉取客户端。
[0042]在本实施例中,服务器接收到消息后,对消息进行解析,提取出消息中包括的目标客户端的信息,根据该目标客户端的信息判断需要转发消息至实时客户端还是拉取客户端。
[0043]在步骤S103中,如果需要转发所述消息至实时客户端,则服务器实时发送所述消息至实时客户端。
[0044]在本实施例中,如果从客户端接收到的消息是要转发给实时客户端,则服务器直接调用实时客户端的回调接口代理,由所述回调接口代理将所述消息封装成实时客户端规定的消息格式发送给实时客户端。
[0045]在步骤S104中,如果需要转发所述消息至拉取客户端,则服务器先暂存所述消息,当拉取客户端到服务器拉取消息时,再转发所述消息至拉取客户端。
[0046]在本实施例中,如果从客户端接收到的消息是要转发给拉取客户端,则服务器先把该消息暂存到第一队列中,等待拉取客户端定期到服务器来拉取。当拉取客户端从服务器拉取消息时,服务器将暂存在所述第一队列中的该消息存入第二队列中,同时使所述第一队列为空,拉取客户端从第二队列中拉取暂存的该消息。在拉取客户端从该第二队列中拉取所述消息的同时,若服务器接收到新的需要转发给拉取客户端的消息,则暂存所述新的需要转发给拉取客户端的消息至第一队列中,等待下一次被拉取客户端拉取。需要说明的是,在第一队列和第二队列中的内容进行交换时,服务器会对第一队列和第二队列进行加锁同步,使得第二队列和第一队列的内容实现同步更新。
[0047]本实施例,服务器接收到客户端发送的消息后,可以将消息直接转发给实时客户端,也可以将接收到的消息先暂存在本地,等到拉取客户端来拉取消息时,再将接收到的消息转发给拉取客户端。服务器既可以支持实时推送方式,也可以支持定期拉取方式。实现了客户端之间、客户端与服务器之间既可以进行实时通信,也可以进行非实时通信。
[0048]本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如R0M/RAM、磁盘或光盘等。
[0049]实施例二
[0050]图2示出了本发明实施例二提供的服务器的具体结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。该服务器2包括:消息接收单元21、客户端识别单元22、消息实时发送单元23和消息拉取单元24。
[0051]其中,消息接收单元21,用于接收客户端发送的消息;
[0052]客户端识别单元22,用于根据所述消息判断需要转发所述消息至实时客户端还是拉取客户端;[0053]消息实时发送单元23,用于如果需要转发所述消息至实时客户端,则实时发送所述消息至实时客户端;
[0054]消息拉取单元24,用于如果需要转发所述消息至拉取客户端,则先暂存所述消息,当拉取客户端到服务器拉取消息时,再转发所述消息至拉取客户端。
[0055]进一步地,所述客户端是实时客户端或拉取客户端。
[0056]具体的,所述消息拉取单元24包括:
[0057]消息暂存子单元,用于把所述消息暂存到第一队列;
[0058]消息拉取子单元,用于当拉取客户端到服务器拉取消息时,将所述第一队列中存储的所述消息存入第二队列中,同时使所述第一队列为空,拉取客户端从所述第二队列中拉取所述消息。
[0059]进一步地,所述消息拉取子单元还用于,在所述拉取客户端从所述第二队列中拉取所述消息的同时,若接收到新的需要转发给拉取客户端的消息,则暂存所述新的需要转发给拉取客户端的消息至第一队列中,等待下一次被拉取客户端拉取。
[0060]本发明实施例提供的服务器可以应用在前述对应的方法实施例一中,详情参见上述实施例一的描述,在此不再赘述。
[0061]实施例三
[0062]图3示出了本发明实施例三提供的转发消息的系统的具体结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。该系统3包括服务器31和至少两个客户端,本实施例中以两个客户端为例来进行说明,客户端32作为消息接收方,另一客户端33作为消息发送方。服务器与消息发送方和消息接收方分别连接,可以将从消息发送方接收到的消息转发给消息接收方。当消息接收方是实时客户端时,服务器实时发送接收到的消息至实时客户端;当消息接收方是拉取客户端时,服务器先暂存接收到的消息,当拉取客户端到服务器拉取消息时,再转发所述消息至拉取客户端。
[0063]本发明实施例提供的转发消息的系统可以应用在前述对应的方法实施例一中,详情参见上述实施例一的描述,在此不再赘述。
[0064]值得注意的是,上述系统实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
[0065]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种转发消息的方法,其特征在于,所述方法包括: 服务器接收客户端发送的消息; 服务器根据所述消息判断需要转发所述消息至实时客户端还是拉取客户端; 如果需要转发所述消息至实时客户端,则服务器实时发送所述消息至实时客户端; 如果需要转发所述消息至拉取客户端,则服务器先暂存所述消息,当拉取客户端到服务器拉取消息时,再转发所述消息至拉取客户端。
2.如权利要求1所述的方法,其特征在于,所述客户端是实时客户端或拉取客户端。
3.如权利要求2所述的方法,其特征在于,所述服务器先暂存所述消息,当拉取客户端到服务器拉取消息时,再转发所述消息至拉取客户端包括: 服务器把所述消息暂存到第一队列; 当拉取客户端到服务器拉取消息时,服务器将所述第一队列中存储的所述消息存入第二队列中,同时使所述第一队列为空,拉取客户端从所述第二队列中拉取所述消息。
4.如权利要求3所述的方法,其特征在于,在所述拉取客户端从所述第二队列中拉取所述消息的同时,若服务器接收到新的需要转发给拉取客户端的消息,则暂存所述新的需要转发给拉取客户端的消息至第一队列中,等待下一次被拉取客户端拉取。
5.一种服务器,其特征在于,所述服务器包括: 消息接收单元,用于接收客户端发送的消息; 客户端识别单元,用于根据所述消息判断需要转发所述消息至实时客户端还是拉取客户端; 消息实时发送单元,用于如果需要转发所述消息至实时客户端,则实时发送所述消息至实时客户端; 消息拉取单元,用于如果需要转发所述消息至拉取客户端,则先暂存所述消息,当拉取客户端到服务器拉取消息时,再转发所述消息至拉取客户端。
6.如权利要求5所述的服务器,其特征在于,所述客户端是实时客户端或拉取客户端。
7.如权利要求6所述的服务器,其特征在于,所述消息拉取单元包括: 消息暂存子单元,用于把所述消息暂存到第一队列; 消息拉取子单元,用于当拉取客户端到服务器拉取消息时,将所述第一队列中存储的所述消息存入第二队列中,同时使所述第一队列为空,拉取客户端从所述第二队列中拉取所述消息。
8.如权利要求7所述的服务器,其特征在于,所述消息拉取子单元还用于,在所述拉取客户端从所述第二队列中拉取所述消息的同时,若接收到新的需要转发给拉取客户端的消息,则暂存所述新的需要转发给拉取客户端的消息至第一队列中,等待下一次被拉取客户端拉取。
9.一种转发消息的系统,其特征在于,所述系统包括至少两个客户端,与所述客户端连接的如权利要求5至8任一项所述的服务器。
【文档编号】H04L12/58GK103701692SQ201310737858
【公开日】2014年4月2日 申请日期:2013年12月25日 优先权日:2013年12月25日
【发明者】陶金虎 申请人:Tcl集团股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1