消息的获取方法、服务端、客户端及网关设备与流程

文档序号:12067950阅读:192来源:国知局
消息的获取方法、服务端、客户端及网关设备与流程
本申请涉及计算机
技术领域
,尤其涉及一种消息的获取方法、服务端、客户端及网关设备。
背景技术
:业务系统中,服务端往往需要向海量级的在线客户端发送即时消息,其中,即时消息是指具有有效时间的消息(如,促销消息等),因此,如何能实时地向海量级的在线客户端发送即时消息就成为需要解决的问题。在一种现有技术中,服务端依次向每个在线客户端发送即时消息,由于该即时消息的数据量过大,从而会导致在有大量的在线客户端时,服务端发送消息的时间过长,而这个发送时长很有可能超出即时消息的有效时间,由此造成在线客户端接收到的即时消息失效的问题。在另一种现有技术中,客户端在特定时刻(如,登录时刻)向服务端发送拉取请求,服务端在接收到拉取请求时,判断是否有即时消息,若有,则向在线客户端发送即时消息,然而上述不对即时消息进行识别,而直接返回即时消息的方法会影响在线客户端获取信息的准确性。技术实现要素:本申请实施例提供了一种消息的获取方法、服务端、客户端及网关设备,可以保证客户端获取的消息的实时性和准确性。第一方面,提供了一种消息的获取方法,该方法包括:服务端接收第一消息;根据所述第一消息的消息内容以及所述第一消息的接收时间戳,生成所述第一消息的标识信息;向客户端发送所述标识消息,以使所述客户端在根据所述标识信息未查找到所述第一消息时,根据所述标识信息获取所述第一消息。第二方面,提供了一种消息的获取方法,该方法包括:客户端接收服务端发送的第一消息的标识信息,其中,所述标识信息是由所述服务端根据所述第一消息的消息内容以及所述第一消息的接收时间戳生成的;根据所述标识信息,查找所述第一消息;若未查找到所述第一消息,则根据所述标识信息获取所述第一消息。第三方面,提供了一种消息的获取方法,该方法包括:网关设备接收客户端在根据第一消息的标识信息未查找到所述第一消息时发送的第二读取请求,其中,所述第二读取请求中携带所述标识信息;根据所述标识信息从本地存储单元中查找所述第一消息;若查找到所述第一消息,则向所述客户端返回所述第一消息;若未查找到所述第一消息,则从服务端获取所述第一消息,并向所述客户端返回所述第一消息。第四方面,提供了一种服务端,该服务端包括:接收单元、生成单元和发送单元;所述接收单元,用于接收第一消息;所述生成单元,用于根据所述接收单元接收的所述第一消息的消息内容以及所述第一消息的接收时间戳,生成所述第一消息的标识信息;所述发送单元,用于向客户端发送所述生成单元生成的所述标识消息,以使所述客户端在根据所述标识信息未查找到所述第一消息时,根据所述标识信息获取所述第一消息。第五方面,提供了一种客户端,该客户端包括:接收单元、查找单元和 获取单元;所述接收单元,用于接收服务端发送的第一消息的标识信息,其中,所述标识信息是由所述服务端根据所述第一消息的消息内容以及所述第一消息的接收时间戳生成的;所述查找单元,用于根据所述接收单元接收的所述标识信息,查找所述第一消息;所述获取单元,用于若所述查找单元未查找到所述第一消息,则根据所述标识信息获取所述第一消息。第六方面,提供了一种网关设备,该网关设备包括:接收单元、查找单元、发送单元和获取单元;所述接收单元,用于接收客户端在根据第一消息的标识信息未查找到所述第一消息时发送的第二读取请求,其中,所述第二读取请求中携带所述标识信息;所述查找单元,用于根据所述接收单元接收的所述标识信息从本地存储单元中查找所述第一消息;所述发送单元,用于若所述查找单元查找到所述第一消息,则向所述客户端返回所述第一消息;所述获取单元,用于若所述查找单元未查找到所述第一消息,则从服务端获取所述第一消息,并向所述客户端返回所述第一消息。本申请提供的消息的获取方法、服务端、客户端及网关设备,服务端接收第一消息;根据所述第一消息的消息内容以及所述第一消息的接收时间戳,生成所述第一消息的标识信息;向客户端发送所述标识消息,以使所述客户端在根据所述标识信息未查找到所述第一消息时,根据所述标识信息获取所述第一消息。由此可知,本申请中,服务端向客户端发送第一消息的标识信息,从而可以解决现有技术中服务端向客户端发送第一消息,而由于第一消息的数据量较大,造成的发送时间过长,从而导致的客户端不能实时地获取 消息的问题;此外,客户端在未查找到第一消息时,根据标识信息获取第一消息,这可以提高消息的获取的准确性。附图说明图1为本申请一种实施例提供的消息的获取方法流程图;图2为本申请另一种实施例提供的消息的获取方法流程图;图3为本申请再一种实施例提供的消息的获取方法流程图;图4为本申请又一种实施例提供的消息的获取方法交互图;图5为本申请一种实施例提供的服务端的示意图;图6为本申请另一种实施例提供的客户端的示意图;图7为本申请再一种实施例提供的网关设备的示意图。具体实施方式为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。为便于对本申请实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本申请实施例的限定。本申请实施例提供的消息的获取方法、服务端、客户端及网关设备,适用于业务系统中发送消息的场景,其中,业务系统包括服务端和客户端,服务端与客户端之间可以通过网关设备通信,而消息可以为图文消息、广告内容等即时消息,也可以为非即时消息。例如,适用于服务端向海量级的在线客户端发送即时消息的场景,此处,服务端可以包括应用集群、消息发送集群和数据同步系统;应用集群用于监 听消息源发送的消息,而消息源可以为业务系统本身,也可以为第三方应用系统,还用于向消息发送集群分发任务;消息发送集群用于根据应用集群分发的任务,将消息发送至客户端;数据同步系统用于向客户端发送消息的标识信息,此处,标识信息是由应用集群根据消息的消息内容以及消息的接收时间戳生成的。图1为本申请一种实施例提供的消息的获取方法流程图。所述方法的执行主体可以为业务系统的服务端,如图1所示,所述方法具体可以包括:步骤110,服务端接收第一消息。即服务端的应用集群接收第一消息。此处,第一消息可以为图文消息、广告内容等即时消息,也可以为非即时消息,在此说明书中,以第一消息为即时消息进行说明。此外,第一消息可以是业务系统本身发送的消息,也可以是第三方应用系统发送的消息。步骤120,根据所述第一消息的消息内容以及所述第一消息的接收时间戳,生成所述第一消息的标识信息。即服务端的应用集群根据接收的所述第一消息的消息内容以及所述第一消息的接收时间戳,生成所述第一消息的标识信息。此处,当第一消息是由除业务系统本身外的其它系统(如,第三方应用系统)发送时,则应用集群在接收到第一消息之后,先进行格式转换,即转换成应用集群可以识别的第一消息,再根据第一消息的消息内容以及第一消息的接收时间戳,生成第一消息的标识信息。在一种具体实施方式中,可识别的第一消息的消息内容可以包括如表1所示的字段。表1messageSourceIdmessageIdenable消息源Id消息Id有效标示即应用集群可以根据表1所示的各字段的内容以及第一消息的接收时间戳,生成第一消息的标识信息(也称消息Etag)。在一个例子中,在生成消息Etag之后,可以进行MD5加密,如,消息Etag可以为:MD5(messageSourceId+messageId+enable+timestamp)。可选地,应用集群在生成消息Etag之后,可以进一步生成消息公告,在一种具体实施方式中,消息公告包括的字段可以如表2所示。表2messageEtagenabletimestamp消息Etag有效标示时间戳此处,时间戳是指接收第一消息的接收时间戳。在另一个例子中,生成的消息公告包括的各字段的内容可以如下所示:messageEtag:4b50a754f2bd58d6d9d74be3d498ec1denable:truetimestamp:2015-08-01_16:58在生成上述消息公告之后,应用集群可以在服务端的数据同步系统中发布该消息公告,也即数据同步系统接收消息公告。此处,需要说明的是,数据同步系统在任一时刻仅维护一份有效的全局消息公告。可选地,应用集群在生成上述标识信息之后,还可以将第一消息以及标识信息放入消息队列中。步骤130,向客户端发送所述标识消息,以使所述客户端在根据所述标识信息未查找到所述第一消息时,根据所述标识信息获取所述第一消息。即数据同步系统在接收到消息公告后,向客户端发送所述标识信息。此处,客户端的个数可以为一个或者多个。可以理解的是,当有多个客户端时,则数据同步系统在接收到消息公告之后,向多个客户端发送所述标 识信息。客户端在接收到标识信息之后,可以从客户端缓存中查找第一消息。在一种具体实施方式中,客户端缓存中存储的字段可以如表3所示。表3messageEtagmessageContentisLoaded消息Etag消息正文已加载标示在再一个例子中,客户端缓存中各字段的内容可以如下所示:即客户端可以根据消息Etag,从客户端缓存中查找第一消息。若查找到第一消息,则客户端根据客户端缓存中已加载标示字段的内容,执行相应的操作。如,当字段“isLoaded”的内容为“true”时,说明该消息已经被客户端加载过,因此客户端忽略第一消息;而当字段“isLoaded”的内容为“false”时,说明该消息还未被客户端加载过,因此客户端加载该 第一消息。此处,若查找到第一消息,则该第一消息可以是由客户端在从服务端接收到第一消息以及标识信息后存储在客户端缓存中的。若查找不到第一消息,客户端向网关设备发送第二读取请求,所述第二读取请求中携带所述标识信息;网关设备接收到第二读取请求之后,根据所述标识信息从本地存储单元(也称网关缓存)或者所述服务端获取所述第一消息。其中,根据所述标识信息从本地存储单元或者所述服务端获取所述第一消息具体为:网关设备首先根据标识信息,从本地存储单元中查找第一消息,若查找到,则向客户端返回该第一消息;若未查找到,则向服务端的应用集群发送第一读取请求,该第一读取请求中携带所述标识信息,应用集群在接收到第一读取请求之后,从消息队列中读取第一消息,并向网关设备返回第一消息。网关设备接收到第一消息后,将第一消息存储在本地存储单元,并向客户端返回该第一消息,客户端将第一消息存储在客户端缓存中。当有其它客户端向网关设备发送第二读取请求时,网关设备从本地存储单元中读取第一消息并返回,也即不需要再从服务端读取,由此可以减少服务端的请求数,从而可以确保服务端的稳定性。举例来说,假设服务端的应用集群接收第一消息,且假设消息公告的内容、客户端缓存的内容以及网关缓存的内容分别如表4、表5和表6所示。表4消息Etag4b50a754f2bd58d6d9d74be3d498ec1d有效标示true时间戳2015-08-01_16:58表5消息Etag消息正文已记载标示45d8b4c3eae60c172719ddedff0da1d8{biz_content:…}truee5eca4fb5c0ea402a64bcfac88c81728{biz_content:…}false80323857fd94c637ae6e947553a7f5le{biz_content:…}true表6消息Etag消息正文4b50a754f2bd58d6d9d74be3d498ec1d{biz_content:new_msg}即客户端在接收到表4中的消息Etag时,将该消息Etag与表5中的消息Etag进行比对,因为均比对不一致,所以未查找到第一消息;客户端向网关设备发送第二读取请求,该第二读取请求中携带表4中的消息Etag;网关设备将该消息Etag与表6中的消息Etag进行比对,因为比对一致,也即查找到第一消息,向客户端返回第一消息;客户端在接收到第一消息之后,将第一消息以及第一消息的标识信息存储到客户端缓存中。需要说明的是,本申请实施例中客户端根据服务端发送的标识信息,从客户端缓存中查找第一消息,可以保证客户端能实时地加载并显示最新消息或者最新版本的消息。可选地,在生成所述第一消息的标识信息之后,所述方法还包括:向所述客户端发送所述第一消息以及所述标识信息,以使所述客户端在根据所述标识信息未查找到所述第一消息时,存储所述第一消息以及所述标识信息。具体地,应用集群在生成标识信息之后,创建任务,并将创建的任务分发至消息发送集群,此处的任务可以是用于指示消息发送集群中的每台机器向哪些客户端发送第一消息的信息。消息发送集群根据分发的任务,向客户 端发送第一消息以及标识信息;客户端在接收到标识信息之后,首先根据该标识信息从客户端缓存(如,表5)中查找第一消息,若查找到第一消息,则忽略接收到的第一消息以及标识信息;若未查找到第一消息,则可以在客户端缓存中存储所述第一消息以及所述标识信息,并根据第一消息对应的已加载标示字段的内容,加载或者不加载第一消息,而无需再向网关设备请求第一消息。可以理解是,若客户端缓存中已存储第一消息,则该第一消息可以是客户端根据第一消息的标识信息从网关设备或者服务端获取到的。需要说明的是,上述发送第一消息以及标识信息的步骤可以与步骤130同时执行,即本申请可以同时结合现有技术的两种技术方案,也即本申请中,服务端在发送第一消息的标识信息的同时向客户端发送第一消息,客户端在接收到标识信息之后,若还没有接收到上述第一消息,则从网关设备或者服务端获取该第一消息,由此来保证客户端获取消息的实时性。此外,因为本申请中服务端同时也向客户端发送了第一消息,客户端只有在客户端缓存中查找不到第一消息时,才从网关设备或者服务端获取第一消息,由此可以减少服务端的请求数,从而可以保证服务端的稳定性。在消息发送集群向所有的客户端发送第一消息以及标识信息之后,向应用集群发送用于表示消息发送完成的消息,应用集群在接收到该表示消息发送完成的消息后,向数据同步系统发送通知消息,该通知消息用于指示数据同步系统撤销公告消息,如,将表4所示的内容修改为表7所示的内容。表7消息Etag4b50a754f2bd58d6d9d74be3d498ec1d有效标示false时间戳2015-08-01_16:58数据同步系统在撤销公告消息之后,不再向客户端发送标识信息。图2为本申请另一种实施例提供的消息的获取方法流程图。所述方法的执行主体可以为业务系统的客户端,如图2所示,所述方法具体可以包括:步骤210,客户端接收服务端发送的第一消息的标识信息,其中,所述标识信息是由所述服务端根据所述第一消息的消息内容以及所述第一消息的接收时间戳生成的。即客户端接收服务端的应用集群发送的第一消息的标识信息。此处,第一消息可以为图文消息、广告内容等即时消息,也可以为非即时消息,在此说明书中,以第一消息为即时消息进行说明。此外,第一消息可以是业务系统本身发送的消息,也可以是第三方应用系统发送的消息。当第一消息是由第三方应用系统发送时,则应用集群在接收到第一消息之后,先进行格式转换,即转换成应用集群可以识别的第一消息,再根据第一消息的消息内容以及第一消息的接收时间戳,生成第一消息的标识信息。在一种具体实施方式中,应用集群可以根据表1所示的各字段的内容以及第一消息的接收时间戳,生成第一消息的标识信息(也称消息Etag)。在一个例子中,在生成消息Etag之后,可以进行MD5加密,如,消息Etag可以为:MD5(messageSourceId+messageId+enable+timestamp)。可选地,应用集群在生成上述消息Etag之后,可以进一步生成消息公告,在一种具体实施方式中,消息公告包括的字段可以如表2所示。在生成上述消息公告之后,应用集群可以在服务端的数据同步系统中发布该消息公告,此处,需要说明的是,数据同步系统在任一时刻仅维护一份有效的全局消息公告;数据同步系统在接收到消息公告后,向客户端发送所述标识信息。步骤220,根据所述标识信息,查找所述第一消息。此处,客户端的个数可以为一个或者多个。可以理解的是,当有多个客户端时,数据同步系统在接收到消息公告之后,向多个客户端发送所述标识 信息。客户端在接收到标识信息之后,可以从客户端缓存中查找第一消息。在一种具体实施方式中,客户端缓存中存储的字段可以如表3所示。即客户端可以根据消息Etag,从客户端缓存中查找第一消息。步骤230,若未查找到所述第一消息,则根据所述标识信息获取所述第一消息。其中,步骤230中根据所述标识信息获取所述第一消息包括:向网关设备发送第二读取请求,所述第二读取请求中携带所述标识信息;接收所述网关设备根据所述标识信息从本地存储单元或者所述服务端获取到的所述第一消息。此处,本地存储单元也称网关缓存。上述根据所述标识信息从本地存储单元或者所述服务端获取所述第一消息具体为:网关设备首先根据标识信息,从本地存储单元中查找第一消息,若查找到,则向客户端返回该第一消息;若未查找到,则向服务端的应用集群发送第一读取请求,该第一读取请求中携带所述标识信息,应用集群在接收到第一读取请求之后,从消息队列中读取第一消息,并向网关设备返回第一消息。网关设备接收到第一消息后,将第一消息存储在本地存储单元,并向客户端返回该第一消息,客户端将第一消息存储在客户端缓存中。当有其它客户端向网关设备发送第二读取请求时,网关设备从本地存储单元中读取第一消息并返回,也即不需要再从服务端读取,由此可以减少服务端的请求数,从而可以确保服务端的稳定性。步骤230描述的是在客户端未查找到第一消息时,客户端所执行的操作,而若查找到第一消息,则客户端根据客户端缓存中已加载标示字段的内容,执行相应的操作。如,当字段“isLoaded”的内容为“true”时,说明该消息已经被客户端加载过,因此客户端忽略第一消息;而当字段“isLoaded”的内容为“false”时,说明该消息还未被客户端加载过,因此客户端加载该第一消息。此处,若查找到第一消息,则该第一消息可以是由客户端在从服务端接 收到第一消息以及标识信息后存储在客户端缓存中的。需要说明的是,本申请实施例中客户端根据服务端发送的标识信息,从客户端缓存中查找第一消息,可以保证客户端能实时地加载并显示最新消息或者最新版本的消息。可选地,所述方法还可以包括如下步骤:接收所述服务端发送的所述第一消息以及所述标识信息;根据所述标识信息,查找所述第一消息;若未查找到所述第一消息,则存储所述第一消息以及所述标识信息。具体地,应用集群在生成标识信息之后,创建任务,并将创建的任务分发至消息发送集群,此处的任务可以是用于指示消息发送集群中的每台机器向哪些客户端发送第一消息的信息。消息发送集群根据分发的任务,向客户端发送第一消息以及标识信息;客户端在接收到标识信息之后,首先根据该标识信息从客户端缓存(如,表5)中查找第一消息,若查找到第一消息,则忽略接收到的第一消息以及标识信息;若未查找到第一消息,则可以将所述第一消息以及所述标识信息存储在客户端缓存中,并根据第一消息对应的已记载标示字段的内容,加载或者不加载第一消息,而无需再向网关设备请求第一消息。可以理解是,若客户端缓存中已存储第一消息,则该第一消息可以是客户端根据第一消息的标识信息从网关设备或者服务端获取的。需要说明的是,上述发送第一消息以及标识信息的步骤可以与步骤220-步骤230同时执行,即本申请可以同时结合现有技术的两种技术方案,也即本申请中,服务端在发送第一消息的标识信息的同时向客户端发送第一消息,客户端在接收到标识信息之后,若还没有接收到上述第一消息,则从网关设备或者服务端获取该第一消息,由此来保证客户端获取消息的实时性。此外,因为本申请中服务端同时也向客户端发送了第一消息,客户端只有在客户端缓存中查找不到第一消息时,才从网关设备或者服务端获取第一消息,由此 可以减少服务端的请求数,从而可以保证服务端的稳定性。在消息发送集群向所有的客户端发送第一消息以及标识信息之后,向应用集群发送用于表示消息发送完成的消息,应用集群在接收到该表示消息发送完成的消息后,向数据同步系统发送通知消息,该通知消息用于指示数据同步系统撤销公告消息,数据同步系统在撤销公告消息之后,不再向客户端发送标识信息。图3为本申请再一种实施例提供的消息的获取方法流程图。所述方法的执行主体可以为网关设备,如图3所示,所述方法具体可以包括:步骤310,网关设备接收客户端在根据第一消息的标识信息未查找到所述第一消息时发送的第二读取请求,其中,所述第二读取请求中携带所述标识信息。此处,第一消息可以为图文消息、广告内容等即时消息,也可以为非即时消息,在此说明书中,以第一消息为即时消息进行说明。此外,第一消息可以是业务系统本身发送的消息,也可以是第三方应用系统发送的消息。当第一消息是由第三方应用系统发送时,则应用集群在接收到第一消息之后,先进行格式转换,即转换成应用集群可以识别的第一消息,再根据第一消息的消息内容以及第一消息的接收时间戳,生成第一消息的标识信息。在一种具体实施方式中,应用集群可以根据表1所示的各字段的内容,生成第一消息的标识信息(也称消息Etag)。即网关设备接收客户端在根据消息Etag从客户端缓存中未查找到第一消息时发送的第二读取请求。步骤320,根据所述标识信息从本地存储单元中查找所述第一消息。此处,本地存储单元也称网关缓存。步骤330,若查找到所述第一消息,则向所述客户端返回所述第一消息。步骤340,若未查找到所述第一消息,则从服务端获取所述第一消息,并 向所述客户端返回所述第一消息。其中,步骤340中从服务端获取所述第一消包括:向所述服务端发送第一读取请求,所述第一读取请求中携带所述标识信息;接收所述服务端根据所述标识信息从消息队列中读取的所述第一消息。即网关设备首先根据标识信息,从本地存储单元中查找第一消息,若查找到,则向客户端返回该第一消息;若未查找到,则向服务端的应用集群发送第一读取请求,该第一读取请求中携带所述标识信息,应用集群在接收到第一读取请求之后,从消息队列中读取第一消息,并向网关设备返回第一消息。网关设备接收到第一消息后,将第一消息存储在本地存储单元,并向客户端返回该第一消息,客户端将第一消息存储在客户端缓存中。当有其它客户端向网关设备发送第二读取请求时,网关设备从本地存储单元中读取第一消息并返回,也即不需要再从服务端读取,由此可以减少服务端的请求数,从而可以确保服务端的稳定性。图4为本申请又一种实施例提供的消息的获取方法交互图。如图4所示,所述方法具体可以包括:步骤410,应用集群接收第一消息。步骤420,应用集群根据第一消息的消息内容以及第一消息的接收时间戳,生成第一消息的标识信息。可选地,在执行步骤420之后,应用集群可以将第一消息以及第一消息的标识信息放入消息队列。步骤430,应用集群根据标识信息,生成消息公告。步骤440,应用集群在数据同步系统中发布上述消息公告。步骤450,数据同步系统向客户端发送标识信息。步骤460,客户端根据标识信息,从客户端缓存中查找第一消息,若查找到,则执行步骤470,否则执行步骤480。步骤470,客户端对第一消息执行加载或者不加载的操作。步骤480,客户端向网关设备发送第二读取请求,第二读取请求中携带标识信息。步骤490,网关设备根据标识信息,从本地存储单元中查找第一消息,若查找到,则执行步骤4100,否则执行步骤4110。步骤4100,网关设备向客户端返回该第一消息。步骤4110,网关设备向应用集群发送第一读取请求,该第一读取请求中携带标识信息。步骤4120,应用集群从消息队列中读取第一消息,并向网关设备返回第一消息。步骤4130,网关设备将第一消息存储在本地存储单元,并向客户端返回第一消息。步骤4140,客户端将第一消息存储在客户端缓存中。需要说明的是,在执行步骤430-步骤4140的同时,本申请实施例还可以执行如下步骤:步骤4150,应用集群创建任务。步骤4160,应用集群向消息发送集群分发创建的任务。步骤4170,消息发送集群根据分发的任务,向客户端发送第一消息以及第一消息的标识信息。步骤4180,客户端根据标识信息,从客户端缓存中查找第一消息,若查找到,则执行步骤4190,否则执行步骤4200。可以理解的是,在执行步骤4180时,若步骤4140已经执行完成,则客户端缓存中已经存储第一消息,即可以查找到第一消息,则执行步骤4190;而若在执行步骤4180时,步骤4140还未执行完成,则客户端缓存中还未存储第一消息,即未查找到第一消息,则执行步骤4200。步骤4190,客户端忽略接收到的第一消息以及标识信息。步骤4200,客户端将第一消息及标识信息存储在客户端缓存中。步骤4210,客户端根据第一消息对应的已加载标示字段的内容,加载或者不加载第一消息。与上述一种实施例提供的消息的获取方法对应地,本申请实施例还提供的一种服务端,如图5所示,该服务端包括:接收单元501、生成单元502和发送单元503。接收单元501,用于接收第一消息。生成单元502,用于根据接收单元501接收的所述第一消息的消息内容以及所述第一消息的接收时间戳,生成所述第一消息的标识信息。发送单元503,用于向客户端发送生成单元502生成的所述标识消息,以使所述客户端在根据所述标识信息未查找到所述第一消息时,根据所述标识信息获取所述第一消息。可选地,发送单元503,还用于向所述客户端发送所述第一消息以及所述标识信息,以使所述客户端在根据所述标识信息未查找到所述第一消息时,存储所述第一消息以及所述标识信息。可选地,所述服务端还包括:存储单元504和读取单元505。存储单元504,用于将所述第一消息以及所述标识信息放入消息队列中。读取单元505,用于根据网关设备发送的第一读取请求,从所述消息队列中读取所述第一消息,其中,所述第一读取请求中携带所述标识信息。发送单元503,还用于向所述网关设备返回读取单元505读取的所述第一消息。本申请实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本申请提供的装置的具体工作过程,在此不复赘述。本申请提供的服务端,接收单元501接收第一消息;生成单元502根据接收的所述第一消息的消息内容以及所述第一消息的接收时间戳,生成所述第一消息的标识信息;发送单元503向客户端发送所述标识消息,以使所述 客户端在根据所述标识信息未查找到所述第一消息时,根据所述标识信息获取所述第一消息。由此,可以保证客户端获取的消息的实时性和准确性。与上述另一种实施例提供的消息的获取方法对应地,本申请实施例还提供的一种客户端,如图6所示,该客户端包括:接收单元601、查找单元602和获取单元603。接收单元601,用于接收服务端发送的第一消息的标识信息,其中,所述标识信息是由所述服务端根据所述第一消息的消息内容以及所述第一消息的接收时间戳生成的。查找单元602,用于根据接收单元601接收的所述标识信息,查找所述第一消息。获取单元603,用于若查找单元602未查找到所述第一消息,则根据所述标识信息获取所述第一消息。其中,获取单元603具体用于:向网关设备发送第二读取请求,所述第二读取请求中携带所述标识信息;接收所述网关设备根据所述标识信息从本地存储单元或者所述服务端获取到的所述第一消息。可选地,所述客户端还包括:存储单元604。接收单元601,还用于接收所述服务端发送的所述第一消息以及所述标识信息;查找单元602,还用于根据接收单元601接收的所述标识信息,查找所述第一消息;存储单元604,用于若查找单元602未查找到所述第一消息,则存储所述第一消息以及所述标识信息。本申请提供的客户端,接收单元601接收服务端发送的第一消息的标识信息,其中,所述标识信息是由所述服务端根据所述第一消息的消息内容以及所述第一消息的接收时间戳生成的;查找单元602根据接收的所述标识信 息,查找所述第一消息;获取单元603若未查找到所述第一消息,则根据所述标识信息获取所述第一消息。由此,可以保证客户端获取的消息的实时性和准确性。与上述再一种实施例提供的消息的获取方法对应地,本申请实施例还提供的一种网关设备,如图7所示,该网关设备包括:接收单元701、查找单元702、发送单元703和获取单元704。接收单元701,用于接收客户端在根据第一消息的标识信息未查找到所述第一消息时发送的第二读取请求,其中,所述第二读取请求中携带所述标识信息。查找单元702,用于根据接收单元701接收的所述标识信息从本地存储单元中查找所述第一消息。发送单元703,用于若查找单元702查找到所述第一消息,则向所述客户端返回所述第一消息。获取单元704,用于若查找单元702未查找到所述第一消息,则从服务端获取所述第一消息,并向所述客户端返回所述第一消息。其中,获取单元704具体用于:向所述服务端发送第一读取请求,所述第一读取请求中携带所述标识信息;接收所述服务端根据所述标识信息从消息队列中读取的所述第一消息。本申请提供的网关设备,可以减少服务端的请求数,从而可以确保服务端的稳定性。专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的对象及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每 个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或
技术领域
内所公知的任意其它形式的存储介质中。以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1