一种聊天消息的处理方法、相关设备和系统的制作方法

文档序号:10572572阅读:494来源:国知局
一种聊天消息的处理方法、相关设备和系统的制作方法
【专利摘要】本发明实施例公开了一种社交多媒体群组聊天消息的发送方法,服务器接收到客户端发送的消息推送请求后,判断社交多媒体群组中是否存在相对于客户端本地接收的聊天消息的更新的聊天消息,若为是,服务器向客户端发送更新的聊天消息,这样不需要对社交多媒体群组中的客户端列表进行维护也能实现聊天消息的实时发送,降低了服务器的处理开销。
【专利说明】
一种聊天消息的处理方法、相关设备和系统
技术领域
[0001] 本发明涉及互联网领域,尤其涉及一种社交多媒体群组聊天消息的发送方法、推 送方法、接收方法和相关设备。
【背景技术】
[0002] 现有技术的消息服务器采用主动发送的模式,需要维护群组的成员表以及成员对 应的消息通道映射关系。对于每一条上行消息,服务器解析出消息属于哪个群组之后,都需 要遍历一次成员表中的映射关系,找到需要推送的消息通道并发起消息的推送。
[0003] 然而,对于像直播间的应用场景来说,这样的技术方案主要存在以下问题:
[0004] 1.因为聊天室的成员表被频繁访问,其一般存储在服务器的内存中。聊天室的成 员数量远大于一般群组,所以服务器存储这些信息需要巨大的内存开销。同时,因为直播聊 天室的在线人数往往产生难以不可预测的突增,内存中为每个成员表的预留空间很难确 定。另外,每当有用户加入或退出群组时,都需要对表进行更改。如果群组成员是按照账号 顺序排序的话,每次修改都会引起大量的内存拷贝。
[0005] 2.对于N个成员的群组,每产生一条上行消息,服务器就需要迭代遍历一次内存中 的成员表,时间复杂度为〇(N)。然而,直播聊天室中的成员往往十分活跃,每秒会产生大量 的上行消息,服务器的查表操作将带来巨大的CPU计算开销。同时,聊天室每分钟的上行消 息Μ与成员数N通常称正相关,服务器的计算压力正比于Μ乘以N,所以聊天室的成员人数的 增长意味着服务器的压力成几何增长。
[0006] 现有的消息推送方案采用了成员表,在直播聊天室这种包含大量群组成员和消息 的场景中,对服务器的计算和存储都带来了前所未有的压力。

【发明内容】

[0007] 本发明实施例所要解决的技术问题在于,提供一种社交多媒体群组聊天消息的发 送方法、相关设备和系统。可解决现有技术中服务器处理开销大的问题。
[0008] 为了解决上述技术问题,本发明实施例提供了一种社交多媒体群组聊天消息的发 送方法,包括:
[0009] 服务器接收客户端发送的消息推送请求;其中,所述消息推送请求携带动态消息 序号和社交多媒体群组标识;
[0010] 所述服务器根据确定所述社交多媒体群组标识对应的社交多媒体群组消息列表, 以及根据所述动态消息序号判断所述社交多媒体群组内是否存在更新的聊天消息;
[0011]若为是,所述服务器获取所述社交多媒体群组消息列表中更新的聊天消息的数量 η,将所述动态消息序号加 η,η为大于0的整数;
[0012] 所述服务器获取所述社交多媒体群组消息列表中更新的聊天消息生成第一更新 消息列表,以及确定所述客户端的第一等待时长;
[0013] 所述服务器生成消息推送响应,以及向所述客户端返回所述推送响应消息;其中, 所述消息推送响应携带加 η后的动态消息序号、所述第一更新消息列表、第一等待时长和所 述社交多媒体群组标识。
[0014] 相应地,本发明实施例还提供了一种社交多媒体群组聊天消息的推送方法,包括:
[0015] 客户端检测到达等待时长时,获取当前的动态消息序号和所在的社交多媒体群组 对应的社交多媒体群组标识;
[0016] 所述客户端向服务器发送携带所述社交多媒体群组标识和所述动态消息序号的 消息推送请求;
[0017] 所述客户端接收服务器根据所述消息推送请求返回的消息推送响应;其中,所述 消息推送响应携带更新消息列表、新的等待时长、新的动态消息序号和所述社交多媒体群 组标识;
[0018] 所述客户端判断所述更新消息列表是否为空;
[0019] 若为否,所述客户端在所述社交多媒体群组标识对应的社交多媒体群组显示所述 更新消息列表中的聊天消息,以及根据所述新的等待时长更新本地存储的所述等待时长、 根据所述新的动态消息序号更新本地存储的所述动态消息序号。
[0020] 实施本发明实施例,具有如下有益效果:
[0021] 服务器接收到客户端发送的消息推送请求后,判断社交多媒体群组中是否存在相 对于客户端本地接收的聊天消息的更新的聊天消息,若为是,服务器向客户端发送更新的 聊天消息,这样不需要对社交多媒体群组中的客户端列表进行维护也能实现聊天消息的实 时发送,降低了服务器的处理开销。
【附图说明】
[0022] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。
[0023] 图1是本发明实施例提供的一种直播平台的网络结构图;
[0024] 图2是本发明实施例提供的一种社交多媒体群组聊天消息的发送方法的流程示意 图;
[0025] 图3是本发明实施例提供的一种社交多媒体群组聊天消息的发送方法的另一流程 示意图;
[0026] 图4是图3实施例中的一种可选方案的流程示意图;
[0027] 图5是本发明实施例提供的一种社交多媒体群组聊天消息的推送方法的流程示意 图;
[0028] 图6是本发明实施例提供的一种服务器的结构示意图;
[0029] 图7是本发明实施例提供的一种服务器的另一结构示意图;
[0030] 图8是本发明实施例提供的一种客户端的结构示意图;
[0031 ]图9是本发明实施例提供的一种客户端的另一结构示意图。
【具体实施方式】
[0032] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0033] 参见图1,为本发明实施例提供的一种社交多媒体聊天系统的结构示意图,为了更 好理解本发明实施例公开的一种社交多媒体群组聊天消息的发送方法、相关设备和系统, 社交多媒体群组为服务器创建的一种虚拟空间,虚拟空间中包括一个或多个客户端,客户 端可以在社交多媒体群组中发送聊天消息,社交多媒体群组中的其他客户端能接收到该聊 天消息,聊天消息包括但不限于语音消息、文字消息、视频消息、虚拟物品、点赞消息、红包 等;社交多媒体群组可以为视频直播间、语音直播间、聊天室、即时通信聊天群组或虚拟社 交空间(例如微信朋友圈、微博、说说等)。
[0034] 下面先以视频直播间为例对本发明实施例的社交多媒体聊天系统的的网络构架 进行描述。请参阅图1,图1是本发明实施例公开的一种视频直播间的网络构架示意图。如图 1所示,该视频直播的网络构架可以包括服务器以及多个客户端,其中,服务器可包括一个 接收服务器和多个发送服务器,接收服务器用于接收客户端发送的聊天消息,发送服务器 用于向客户端发送聊天消息,由于服务器的下行方向的流量远大于上行方向的流量,通过 设置多个发送服务器可减轻下行方向的负载更均衡。聊天消息包括但不限于:图片、文字、 点赞、虚拟物品或红包;服务器也被称后台服务器、组件服务器等,服务器可以通过互联网 与多个客户端进行通信连接。
[0035] 在图1所示的视频直播网络构架中,多个客户端中的部分客户端可以作为主播客 户端,而其余客户端可以作为观众客户端。本发明实施例中,视频直播间简单来讲就是服务 器创建的一种虚拟空间(或虚拟房间),位于该虚拟空间内的观众客户端可以不仅观看主播 客户端的直播内容,还可以和主播客户端进行语音或文字的交互。主播客户端对接入其视 频直播间内的其余观众客户端不仅具有接入、踢出控制权,还具有直播主动权。本发明实施 例中,主播客户端、观众客户端可以实现包括集合群聊、视频直播、频道K歌、在线游戏、在线 影视等多种功能。在图1所示的直播网络构架中,主播客户端、观众客户端包括但不限于移 动电话、移动电脑、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、媒体播 放器、智能电视、智能手表、智能眼镜、智能手环等用户设备上。
[0036]参见图2,为本发明实施例提供的一种社交多媒体群组聊天消息的处理方法的流 程示意图,在本发明实施例中,所述方法包括:
[0037] S201、服务器接收第一客户端发送的消息推送请求。
[0038]具体的,服务器关联多个第一客户端,多个第一客户端包括主播第一客户端和观 众第一客户端,第一客户端向服务器发送消息推送请求,消息推送请求用于向服务器请求 推送聊天消息,服务器接收第一客户端发送的消息推送请求,消息推送请求携带动态消息 序号和社交多媒体群组标识,动态消息序号可以是第一客户端已接收的聊天消息的最大序 号,或该最大序号加1的序号,社交多媒体群组标识用于唯一表示社交多媒体群组的身份。 [0039] S202、服务器确定社交多媒体群组标识对应的社交多媒体群组消息列表。
[0040]具体的,社交多媒体群组可以为视频直播间、语音直播间、聊天室、即时通信聊天 群组或虚拟社交空间(例如微信朋友圈、微博、说说等),社交多媒体群组标识唯一对应一个 社交多媒体群组,每个社交多媒体群组设置一个社交多媒体群组消息列表,社交多媒体群 组消息列表存储观众第一客户端或主播第一客户端在社交多媒体群组内发送的聊天消息, 聊天消息携带自身的消息序号和社交多媒体群组标识。
[0041] S203、根据动态消息序号判断社交多媒体群组消息列表内存在更新的聊天消息。
[0042] 具体的,服务器根据动态消息序号可以确定第一客户端上最新的聊天消息的序 号,根据最新的聊天消息的序号由此可确定社交多媒体群组消息列表中是否存在相对于该 第一客户端的更新的聊天消息,若为是,执行S204。
[0043] S204、服务器统计社交多媒体群组消息列表中更新的聊天消息的数量n,将动态消 息序号加 η。
[0044] 具体的,在服务器确定社交多媒体群组消息列表中存在相对于第一客户端的更新 的聊天消息时,统计当前时刻社交多媒体群组消息列表中更新的聊天消息的数量η,将当前 的动态消息序号进行加 η。
[0045] S205、服务器获取社交多媒体群组消息列表中更新的聊天消息生成第一更新消息 列表,以及确定第一客户端的第一等待时长。
[0046] 具体的,服务器获取上述的η个更新的聊天消息生成第一更新消息列表,另外,月艮 务器确定第一客户端的第一等待时长,其中,第一等待时长表示该第一客户端在S201发送 的当前的消息推送请求至下一次的消息推送请求之间的时间间隔,服务器确定第一客户端 的第一等待时长的方法可以是:第一等待时长是预先设置的固定值,服务器获取预先设置 的第一等待时长;或服务器根据社交多媒体群组中的聊天消息吞吐量来计算第一等待时 长,第一等待时长与聊天消息的吞吐量成负相关性,即聊天消息吞吐量越大,则第一等待时 长越小,反之,聊天消息吞吐量越小,则第一等待时长越大。
[0047] S206、服务器生成消息推送响应,以及向第一客户端返回消息推送响应。
[0048] 具体的,服务器获取加 η后的动态消息序号、社交多媒体群组的社交多媒体群组标 识、第一等待时长和第一更新消息列表,将加 η后的动态消息序号、社交多媒体群组标识、第 一等待时长和第一更新消息列表添加到消息推送响应中,向第一客户端返回消息推送响 应,第一客户端将本地存储的动态消息序号更新为加 η后的动态消息序号,确定社交多媒体 群组标识对应的社交多媒体群组,将第一更新消息列表中的聊天消息更加消息序号的顺序 依次显示在该社交多媒体群组中,将本地存储的等待时长更新为第一等待时长。
[0049] 从上述实施例可以看出,服务器接收到第一客户端发送的消息推送请求后,判断 社交多媒体群组中是否存在相对于第一客户端本地接收的聊天消息的更新的聊天消息,若 为是,服务器向第一客户端发送更新的聊天消息,这样不需要对社交多媒体群组中的第一 客户端列表进行维护也能实现聊天消息的实时发送,降低了服务器的处理开销。
[0050] 参见图3,为本发明实施例提供的一种社交多媒体群组聊天消息的发送方法的流 程示意图,在本发明实施例中,所述方法包括:
[0051] S301、服务器接收第一客户端发送的消息推送请求。
[0052]具体的,服务器关联多个第一客户端,多个第一客户端包括主播第一客户端和观 众第一客户端,第一客户端向服务器发送消息推送请求,消息推送请求用于向服务器推送 聊天消息,消息推送请求中携带动态消息序号和社交多媒体群组标识,社交多媒体群组标 识用于唯一表示社交多媒体群组的身份,动态消息序号表示第一客户端已接收的社交多媒 体群组内的聊天消息的最大序号,或者最大序号加1(即下次期望接收到的聊天消息的序 号),在初始接入时,第一客户端为接收到任何社交多媒体群组的聊天消息,此时规定动态 消息序号为0或1。
[0053] 举例说明,社交多媒体群组标识对应社交多媒体群组1,第一客户端接收社交多媒 体群组1的聊天消息的最大序号为185,则第一客户端向服务器发送消息推送请求时,消息 推送请求中携带的动态消息序号为185或186,消息推送请求的形式可以为:
[0054] GroupID:10001
[0055] StartSeq:186
[0056] 其中,GroupID表示社交多媒体群组标识,StartSeq表示动态消息序号,此时为第 一客户端期望接收到的下一个聊天消息的消息序号。
[0057] S302、服务器确定社交多媒体群组标识对应的社交多媒体群组消息列表。
[0058]具体的,社交多媒体群组标识唯一对应一个社交多媒体群组,每个社交多媒体群 组设置一个社交多媒体群组消息列表,社交多媒体群组消息列表存储观众第一客户端或主 播第一客户端在该社交多媒体群组内发送的聊天消息,社交多媒体群组消息列表中的聊天 消息携带自身的消息序号和社交多媒体群组标识,每个聊天消息具有不同的消息序号,其 中,在一种可能的实施方式中,社交多媒体群组消息列表可以为FIFO先进先出队列的形式, 即消息序号小的聊天消息位于队列头,消息序号大的聊天消息位于队列尾,队列头至队列 尾的聊天消息按照消息序号的大小升序排列,新到来的聊天消息放置在队列尾。
[0059] S303、根据动态消息序号判断社交多媒体群组消息列表中是否存在更新的聊天消 息。
[0060] 具体的,服务器根据动态消息序号确定社交多媒体群组消息列表中是否存在相对 于第一客户端的更新的聊天消息,判断的方法可以是:1、动态消息序号为第一客户端已接 收到的属于社交多媒体群组的聊天消息的最大序号的情况下,服务器判断社交多媒体群组 消息列表中是否存在大于动态消息序号的聊天消息,若存在,则大于动态消息序号的聊天 消息均为更新的聊天消息;2、动态消息序号为第一客户端期望接收到的属于社交多媒体群 组的下一个聊天消息的序号的情况下,服务器判断社交多媒体群组消息列表中时长存在大 于或等于动态消息序号的聊天消息,若存在,则大于或等于动态消息序号的聊天消息即为 更新的聊天消息。服务器判断社交多媒体群组消息列表中是否存在更新的聊天消息,若为 是,执行S304,否则,执行S307。
[0061] 续上例进行举例说明,动态消息序号为第一客户端期望接收的社交多媒体群组1 的下一个聊天消息的序号,动态消息序号为186,服务器判断社交多媒体群组1对应的社交 多媒体群组消息列表中是否存在消息序号大于或等于186的聊天消息,若查询到存在消息 序号为186、187、188和189的聊天消息,则消息序号为186、187、188和189的四个聊天消息为 相对于第一客户端的更新的聊天消息。
[0062] S304、服务器统计社交多媒体群组消息列表中更新的聊天消息的数量n,将动态消 息序号加 η。
[0063] 具体的,服务器统计社交多媒体群组消息列表中更新的聊天消息的数量,将当前 的动态消息序号增加该数量后生成新的动态消息序号。
[0064] 续上例,服务器统计社交多媒体群组1对应的社交多媒体群组消息列表中更新的 聊天消息的数量为4,当前的动态消息序号为186,将当前的动态消息序号186加4后生成新 的动态消息序号190。
[0065] S305、服务器获取社交多媒体群组消息列表中更新的聊天消息生成第一更新消息 列表,以及确定第一客户端的第一等待时长。
[0066] 具体的,服务器获取η个生成的聊天消息生成第一更新消息列表,同时,服务器确 定第一客户端的第一等待时长,第一等待时长表示第一客户端发起当前的消息推送请求至 发起下次的消息推送请求之间的时间间隔,其中,服务器确定第一客户端的第一等待时长 的方法可以是:第一等待时长是预先设置的固定值,服务器获取预设设置的第一等待时长; 或者,服务器根据社交多媒体群组中的聊天消息吞吐量来计算第一等待时长。
[0067] 续上例,第一更新消息列表中包括消息序号为186、187、188和189的四个聊天消 息,服务器获取预先设置的第一等待时长为3S。
[0068] S306、服务器生成第一消息推送响应,以及向第一客户端返回第一消息推送响应。
[0069] 具体的,第一消息推送响应中携带第一更新消息列表、加 η后的动态消息序号、社 交多媒体群组标识和第一等待时长,第一客户端接收到第一消息推送响应后,确定社交多 媒体群组标识对应的社交多媒体群组,在该社交多媒体群组先根据消息序号升序显示第一 更新消息列表中的聊天消息,将本地存储的动态消息序号更新为加 η后的动态消息,以及将 本地存储的等待时长更新为第一等待时长,在第一等待时长规定的时刻到达时,再次向服 务器发送消息推送请求。
[0070] 续上例,第一消息推送响应的形式为:
[0071]
[0072]
[0073]其中,Group表示社交多媒体群组标识,NextSeq表示新的动态消息序号,此时为第 一客户端期望接收到的下一个聊天消息的序号,HoldTime表示第一等待时长,MsgList表示 第一更新列表,{}中的内容表示更新的聊天消息,Seq表示聊天消息的消息序号,Content表 示聊天消息的内容。
[0074] S307、根据预设的时间间隔和预设的查询次数进行轮询。
[0075]具体的,服务器判断社交多媒体群组消息列表中不存在更新的聊天消息时,进行 长轮询,根据预设的时间间隔和预设的查询次数轮询社交多媒体群组消息列表中是否存在 更新的聊天消息,其中,若当前的轮询操作得到的更新的聊天消息,将得到的聊天消息的消 息序号作为下一次轮询操作的起始消息序号
[0076]例如,服务器以200ms为周期在社交多媒体群组消息列表中轮询10次,等待200ms 后,服务器查询社交多媒体群组消息列表中是否存在消息序号大于或等于186的聊天消息, 查询到1个消息序号为186的聊天消息时,等待200ms,服务器再次查询社交多媒体群组消息 列表中是否存在消息序号大于或等于187的聊天消息,等待200ms,直到达到预设的轮询周 期时,服务器判断是否轮询到更新的聊天消息。
[0077] S308、根据动态消息序号判断社交多媒体群组消息列表中是否存在更新的聊天消 息。
[0078]具体的,服务器根据动态消息序号判断社交多媒体群组消息列表中是否存在更新 的聊天消息的方法可操作S303的描述,此处不再赘述。若判断结构为是,执行S309,否则,执 行S312。
[0079] S309、服务器统计社交多媒体群组消息列表中更新的聊天消息的数量m,将动态消 息序号加 m。
[0080] 具体的,经过长轮询操作后,服务器统计社交多媒体群组消息列表中更新的聊天 消息的数量m,将当前的动态消息序号加 m得到新的动态消息序号。
[0081] 续上例,服务器在经过长轮询后,统计出社交多媒体群组1对应的社交多媒体群组 消息列表中更新的聊天消息的数量为10,当前的动态消息序号为186,将当前的动态消息序 号加10后生成新的动态消息序号196。
[0082] S310、服务器获取社交多媒体群组消息列表中更新的聊天消息生成第二更新消息 列表,以及确定第一客户端的第二等待时长。
[0083]具体的,服务器获取m个生成的聊天消息生成第二更新消息列表,同时,服务器确 定第一客户端的第二等待时长,第二等待时长表示第一客户端发起当前的消息推送请求至 发起下次的消息推送请求之间的时间间隔,其中,服务器确定第一客户端的第二等待时长 的方法可以是:第二等待时长是预先设置的固定值,服务器获取预设设置的第二等待时长; 或者,服务器根据社交多媒体群组中的聊天消息吞吐量来计算第二等待时长。需要说明的 是,第一等待时长小于第二等待时长,例如,第一等待时长为3S,第二等待时长为4S。
[0084] S311、服务器生成第二消息推送响应,以及向第一客户端返回第二消息推送响应。
[0085]具体的,第二消息推送响应携带第二更新消息列表,加 m后的动态消息序号、社交 多媒体群组标识和第二等待时长,第一客户端接收到第二消息推送响应后,根据消息序号 升序显示在社交多媒体群组标识对应的社交多媒体群组内第二更新消息列表中的聊天消 息,根据加 m后的动态消息序号更新本地存储的动态消息序号,将第二等待时长更新本地存 储的等待时长,在达到第二等待时长时,再次向服务器发送消息推送请求。
[0086] S312、确定第一客户端的第三等待时长。
[0087]具体的,在服务器进行长轮询后社交多媒体群组消息列表中仍然没有更新的聊天 消息时,服务器确定第一客户端的第三等待时长,第三等待时长的确定方法可参照第一等 待时长和第二等待时长的确定方法,此处不再赘述,需要说明的是,第一等待时长小于第二 等待时长,第二等待时长小于第三等待时长。
[0088] S313、服务器生成第三消息推送响应,以及向第一客户端返回第三消息推送响应。
[0089]具体的,第三消息推送响应中携带空的更新消息列表、社交多媒体群组标识、动态 消息序号和第三等待时长,其中由于社交多媒体群组消息列表中没有更新的聊天消息,因 此动态消息序号没有更新,第一客户端接收到第三消息推送响应后,将本地的等待时长更 新后第三等待时长,在第三等待时长规定的时刻达到时,再次向服务器发送消息推送请求。
[0090] 从上述实施例可以看出,服务器接收到客户端发送的消息推送请求后,判断社交 多媒体群组中是否存在相对于客户端本地接收的聊天消息的更新的聊天消息,若为是,月艮 务器向客户端发送更新的聊天消息,这样不需要对社交多媒体群组中的客户端列表进行维 护也能实现聊天消息的实时发送,降低了服务器的处理开销。
[0091] 可选的,参见图5,本发明实施例的一种社交多媒体群组消息的推送方法还包括: S401-S404。
[0092] S401、服务器接收第二客户端发送的携带社交多媒体群组标识的聊天消息;
[0093]具体的,第二客户端可以是主播客户端或观众客户端,第二客户端进入社交多媒 体群组后,需要在社交多媒体群组内发送聊天消息是,第二客户端获取所在的社交多媒体 群组的社交多媒体群组标识,第二客户端向服务器发送携带社交多媒体群组标识的聊天消 息,服务器接收第二客户端发送的携带社交多媒体群组标识的聊天消息,其中聊天消息包 括但不限于文字格式消息、语音格式消息或图片格式消息。
[0094] S402、服务器确定社交多媒体群组标识对应的社交多媒体群组消息列表,以及获 取社交多媒体群组消息列表中聊天消息的最大消息序号。
[0095]具体的,社交多媒体群组标识位于表示社交多媒体群组的身份,每个社交多媒体 群组设置一个社交多媒体群组消息列表,社交多媒体群组消息列表用于存储服务器关联的 多个客户端发送的聊天消息,每个聊天消息携带自身的消息序号,服务器获取社交多媒体 群组消息列表中聊天消息的最大序号,其中,如果社交多媒体群组聊天消息为空,则默认聊 天消息的最大序号为〇或1。
[0096] S403、将最大消息序号加1后作为聊天消息的消息序号,以及将消息序号添加到聊 天消息中。
[0097]具体的,服务器将获取到的最大序号加1后得到当前接收到的聊天消息的消息序 号,将消息序号添加到该聊天消息中。
[0098] S404、将聊天消息存储至社交多媒体群组消息列表中。
[0099] 参见图5,为本发明实施例提供的一种社交多媒体群组聊天消息的推送方法,在本 发明实施例中,所述方法包括:
[0100] S501、客户端检测到达等待时长时,获取当前的推送消息序号和所在的社交多媒 体群组对应的社交多媒体群组标识。
[0101] 具体的,客户端获取本地存储的等待时长,在到达等待时长时,客户端获取本地存 储的动态消息序号和客户端所在的社交多媒体群组对应的社交多媒体群组标识,动态消息 序号可以为客户端已接收到的该社交多媒体群组内的聊天消息的最大消息序号,或者客户 端期望接收的该社交多媒体群组的下一个聊天消息的序号。
[0102] S502、客户端向服务器发送携带社交多媒体群组标识和动态消息序号的消息推送 请求,消息推送请求中携带客户端所在的社交多媒体群组的社交多媒体群组标识和动态消 息序号。
[0103] 具体的,消息推送请求用于请求服务器查询社交多媒体群组中更新的聊天消息。
[0104] S503、客户端接收服务器根据消息推送请求返回的消息推送响应。
[0105] 具体的,服务器根据消息推送请求中的动态消息序号判断社交多媒体群组中存在 的更新的聊天消息,服务器判断的的方法具体可参照图3的实施例的描述,此处不再赘述。 消息推送响应中携带更新消息列表、新的等待时长、新的动态消息序号和社交多媒体群组 标识,更新消息列表中包括社交多媒体群组标识对应的社交多媒体群组内更新的聊天消 息。
[0106] S504、客户端判断更新消息列表不为空。
[0107] 具体的,更新消息列表不为空表示存在更新的聊天消息,更新消息列表中的聊天 消息携带自身的消息序号。
[0108] S505、客户端在社交多媒体群组标识对应的社交多媒体群组显示更新消息列表中 的聊天消息,根据新的等待时长更新本地存储的等待时长、根据新的动态消息序号更新本 地存储的动态消息序号。
[0109] 具体的,客户端在社交多媒体群组标识对应的社交多媒体群组中显示更新消息列 表中的聊天消息,显示的方式为根据消息序号升序的方式依次在社交多媒体群组中显示聊 天消息,客户端获取消息推送响应中的新的等待时长和新的动态消息序号,将本地存储的 等待时长替换为新的等待时长,将本地存储的动态消息序号替换为新的消息序号。
[0110] 可选的,在本发明的一种可能的实施方式中,还包括: 若更新消息列表为空,将新的等待时长更新本地存储的等待时长。
[0112] 具体的,客户端确定更新消息列表为空时,表明服务器中不存在更新的聊天消息, 此时动态消息序号没有更新,即消息推送响应中携带的动态消息序号与消息推送请求中的 携带的动态消息序号相同,客户端也不需要在社交多媒体群组显示聊天消息,但是需要将 本地存储的的等待时长替换为新的等待时长,在新的等待时长到达时,再次向服务器发送 消息推送请求。
[0113] 参见图6,为本发明实施例提供的一种服务器的结构示意图,本发明实施例的服务 器用于执行图2中的一种社交多媒体群组聊天消息的发送方法,所涉及的术语和过程可参 照图2实施例的描述。服务器6包括:接收模块601、判断模块602、第一更新模块603、第一确 定模块604和第一响应模块605。
[0114] 接收模块601,用于接收第一客户端发送的消息推送请求;其中,所述消息推送请 求携带动态消息序号和社交多媒体群组标识。
[0115] 判断模块602,用于根据确定所述社交多媒体群组标识对应的社交多媒体群组消 息列表,以及根据所述动态消息序号判断所述社交多媒体群组内是否存在更新的聊天消 息。
[0116] 第一更新模块603,用于若所述判断模块的判断结果为是,获取所述社交多媒体群 组消息列表中更新的聊天消息的数量n,将所述动态消息序号加 n,n为大于0的整数。
[0117] 第一确定模块604,用于获取所述社交多媒体群组消息列表中更新的聊天消息生 成第一更新消息列表,以及确定所述第一客户端的第一等待时长。
[0118] 第一响应模块605,用于生成消息推送响应,以及向所述第一客户端返回所述推送 响应消息;其中,所述消息推送响应携带加 η后的动态消息序号、所述第一更新消息列表、第 一等待时长和所述社交多媒体群组标识。
[0119] 可选的,所述消息序号为所述第一客户端待推送的下一个聊天消息的消息序号或 所述第一客户端已推送的聊天消息的最大消息序号。
[0120] 可选的,服务器6还包括:
[0121]轮询模块,用于若根据所述消息序号判断所述社交多媒体群组消息列表内不存在 更新的社交多媒体群组消息,根据预设的时间间隔和预设的查询次数轮询所述社交多媒体 群组消息列表内是否存在更新的聊天消息;
[0122] 第二更新模块,用于若所述轮询模块的轮询结果为是,获取所述社交多媒体群组 消息列表中更新的聊天消息的数量m,将所述动态消息序号加 m,m为大于0的整数;
[0123] 第二确定模块,用于获取所述社交多媒体群组消息列表中更新的聊天消息生成第 二更新消息列表,以及确定所述第一客户端的第二等待时长;
[0124] 第二响应模块,用于生成第二消息推送响应,以及向所述第一客户端返回所述第 二消息推送响应;其中,所述第二消息推送响应携带加 m后的动态消息序号、所述第二更新 消息列表、第二等待时长和所述社交多媒体群组标识。
[0125] 可选的,服务器6还包括:
[0126] 第三确定模块,用于若根据预设的时间间隔和预设的查询次数轮询所述社交多媒 体群组消息列表中内仍然不存在更新的聊天消息,确定所述第一客户端的第三等待时长;
[0127] 第三响应模块,用于生成第三消息推送响应,以及向所述第一客户端返回所述第 三消息推送响应;其中,所述第三消息推送响应携带空的更新消息列表、第三等待时长、所 述社交多媒体群组标识和所述消息序号。
[0128] 可选的,第一确定模块604用于:
[0129] 获取预设时长内所述社交多媒体群组消息列表接收到的聊天消息的数量,根据所 述数量确定所述第一等待时长,其中,所述第一等待时长与所述数量负相关性。
[0130] 可选的,服务器6还包括:
[0131]聊天消息接收模块,用于接收第二客户端发送的携带所述社交多媒体群组标识的 聊天消息;
[0132] 序号获取模块,用于确定所述社交多媒体群组标识对应的社交多媒体群组消息列 表,以及获取社交多媒体群组消息列表中聊天消息的最大消息序号;
[0133] 序号更新模块模块,用于将所述最大消息序号加1后作为所述聊天消息的消息序 号,以及将所述消息序号添加到所述聊天消息中;
[0134] 存储模块,用于向将所述聊天消息存储在社交多媒体群组消息列表中。
[0135] 本发明实施例和方法图2和图3的实施例一和二基于同一构思,其带来的技术效果 也相同,具体原理可参照方法实施例一和二的描述,此处不再赘述。
[0136] 参见图7,为本发明实施例提供的一种服务器的又一结构示意图,在本发明实施例 中,服务器7包括处理器701、存储器702和收发器703。收发器703用于与外部设备之间收发 数据。服务器7中的处理器701的数量可以是一个或多个。本发明的一些实施例中,处理器 701、存储器702和收发器703可通过总线系统或其他方式连接。服务器7可以用于执行图2所 示的方法。关于本实施例涉及的术语的含义以及举例,可以参考图2对应的实施例。此处不 再赘述。
[0137] 其中,存储器702中存储程序代码。处理器701用于调用存储器702中存储的程序代 码,用于执行以下操作:
[0138] 接收第一客户端发送的消息推送请求;其中,所述消息推送请求携带动态消息序 号和社交多媒体群组标识;
[0139] 根据确定所述社交多媒体群组标识对应的社交多媒体群组消息列表,以及根据所 述动态消息序号判断所述社交多媒体群组内是否存在更新的聊天消息;
[0140]若为是,获取所述社交多媒体群组消息列表中更新的聊天消息的数量n,将所述动 态消息序号加 η,n为大于0的整数;
[0141] 获取所述社交多媒体群组消息列表中更新的聊天消息生成第一更新消息列表,以 及确定所述第一客户端的第一等待时长;
[0142] 生成消息推送响应,以及向所述第一客户端返回所述推送响应消息;其中,所述消 息推送响应携带加 η后的动态消息序号、所述第一更新消息列表、第一等待时长和所述社交 多媒体群组标识。
[0143] 可选的所述消息序号为所述第一客户端待推送的下一个聊天消息的消息序号或 所述第一客户端已推送的聊天消息的最大消息序号。
[0144] 可选的,处理器701还用于执行:
[0145] 若根据所述消息序号判断所述社交多媒体群组消息列表内不存在更新的社交多 媒体群组消息,根据预设的时间间隔和预设的查询次数轮询所述社交多媒体群组消息列表 内是否存在更新的聊天消息;
[0146]若为是,获取所述社交多媒体群组消息列表中更新的聊天消息的数量m,将所述动 态消息序号加 m,m为大于0的整数;
[0147] 获取所述社交多媒体群组消息列表中更新的聊天消息生成第二更新消息列表,以 及确定所述第一客户端的第二等待时长;
[0148] 生成第二消息推送响应,以及向所述第一客户端返回所述第二消息推送响应;其 中,所述第二消息推送响应携带加 m后的动态消息序号、所述第二更新消息列表、第二等待 时长和所述社交多媒体群组标识。
[0149] 可选的,处理器701还用于执行:
[0150] 若根据预设的时间间隔和预设的查询次数轮询所述社交多媒体群组消息列表中 内仍然不存在更新的聊天消息,确定所述第一客户端的第三等待时长;
[0151]生成第三消息推送响应,以及向所述第一客户端返回所述第三消息推送响应;其 中,所述第三消息推送响应携带空的更新消息列表、第三等待时长、所述社交多媒体群组标 识和所述消息序号。
[0152]可选的,处理器701执行所述确定所述第一客户端的第一等待时长包括:
[0153] 获取预设时长内所述社交多媒体群组消息列表接收到的聊天消息的数量,根据所 述数量确定所述第一等待时长,其中,所述第一等待时长与所述数量负相关性。
[0154] 可选的,处理器701还用于执行:
[0155] 所述服务器接收第二客户端发送的携带所述社交多媒体群组标识的聊天消息;
[0156] 所述服务器确定所述社交多媒体群组标识对应的社交多媒体群组消息列表,以及 获取社交多媒体群组消息列表中聊天消息的最大消息序号;
[0157] 所述服务器将所述最大消息序号加1后作为所述聊天消息的消息序号,以及将所 述消息序号添加到所述聊天消息中;
[0158] 所述服务器将所述聊天消息存储至所述社交多媒体群组消息列表中。
[0159] 参见图8,为本发明实施例提供的一种客户端的结构示意图,本发明实施例的客户 端8用于执行图4中的一种社交多媒体群组聊天消息的发送方法,所涉及的术语和过程可参 照图4实施例的描述。客户端8包括检测模块801、发送模块802、接收模块803、判断模块804 和第一更新模块805。
[0160] 检测模块801,用于检测到达等待时长时,获取当前的动态消息序号和所在的社交 多媒体群组对应的社交多媒体群组标识。
[0161] 发送模块802,用于向服务器发送携带所述社交多媒体群组标识和所述动态消息 序号的消息推送请求。
[0162] 接收模块803,用于接收服务器根据所述消息推送请求返回的消息推送响应;其 中,所述消息推送响应携带更新消息列表、新的等待时长、新的动态消息序号和所述社交多 媒体群组标识。
[0163] 判断模块804,用于判断所述更新消息列表是否为空。
[0164] 第一更新模块805,用于若所述判断模块的判断结果为否,所述客户端在所述社交 多媒体群组标识对应的社交多媒体群组显示所述更新消息列表中的聊天消息,以及根据所 述新的等待时长更新本地存储的所述等待时长、根据所述新的动态消息序号更新本地存储 的所述动态消息序号。
[0165] 可选的,客户端8还包括:
[0166] 第二更新模块,用于若所述判断模块的判断为是,将所述新的等待时长更新所述 本地存储的等待时长。
[0167] 本发明实施例和方法图4的实施例三基于同一构思,其带来的技术效果也相同,具 体原理可参照方法实施例三的描述,此处不再赘述。
[0168] 参见图9,为本发明实施例提供的一种客户端的又一结构示意图,在本发明实施例 中,客户端9包括处理器901、存储器902和收发器903。收发器903用于与外部设备之间收发 数据。客户端9中的处理器901的数量可以是一个或多个。本发明的一些实施例中,处理器 901、存储器902和收发器903可通过总线系统或其他方式连接。客户端9可以用于执行图5所 示的方法。关于本实施例涉及的术语的含义以及举例,可以参考图5对应的实施例。此处不 再赘述。
[0169] 其中,存储器902中存储程序代码。处理器901用于调用存储器902中存储的程序代 码,用于执行以下操作:
[0170] 检测到达等待时长时,获取当前的动态消息序号和所在的社交多媒体群组对应的 社交多媒体群组标识;
[0171]向服务器发送携带所述社交多媒体群组标识和所述动态消息序号的消息推送请 求;
[0172] 接收服务器根据所述消息推送请求返回的消息推送响应;其中,所述消息推送响 应携带更新消息列表、新的等待时长、新的动态消息序号和所述社交多媒体群组标识;
[0173] 判断所述更新消息列表是否为空;
[0174] 若为否,在所述社交多媒体群组标识对应的社交多媒体群组显示所述更新消息列 表中的聊天消息,以及根据所述新的等待时长更新本地存储的所述等待时长、根据所述新 的动态消息序号更新本地存储的所述动态消息序号。
[0175] 可选的,处理器901还用于执行:
[0176]若所述更新消息列表为空,将所述新的等待时长更新所述本地存储的等待时长。
[0177] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以 通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质 中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁 碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
[0178] 以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权 利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权 利要求所作的等同变化,仍属于发明所涵盖的范围。
【主权项】
1. 一种社交多媒体群组聊天消息的发送方法,其特征在于,包括: 服务器接收第一客户端发送的消息推送请求;其中,所述消息推送请求携带动态消息 序号和社交多媒体群组标识; 所述服务器根据确定所述社交多媒体群组标识对应的社交多媒体群组消息列表,以及 根据所述动态消息序号判断所述社交多媒体群组内是否存在更新的聊天消息; 若为是,所述服务器获取所述社交多媒体群组消息列表中更新的聊天消息的数量n,将 所述动态消息序号加 n,n为大于O的整数; 所述服务器获取所述社交多媒体群组消息列表中更新的聊天消息生成第一更新消息 列表,以及确定所述第一客户端的第一等待时长; 所述服务器生成消息推送响应,以及向所述第一客户端返回所述推送响应消息;其中, 所述消息推送响应携带加 η后的动态消息序号、所述第一更新消息列表、第一等待时长和所 述社交多媒体群组标识。2. 如权利要求1所述的方法,其特征在于, 所述消息序号为所述第一客户端待推送的下一个聊天消息的消息序号或所述第一客 户端已推送的聊天消息的最大消息序号。3. 如权利要求1所述的方法,其特征在于,还包括: 若根据所述消息序号判断所述社交多媒体群组消息列表内不存在更新的社交多媒体 群组消息,根据预设的时间间隔和预设的查询次数轮询所述社交多媒体群组消息列表内是 否存在更新的聊天消息; 若为是,服务器获取所述社交多媒体群组消息列表中更新的聊天消息的数量m,将所述 动态消息序号加 m,m为大于O的整数; 服务器获取所述社交多媒体群组消息列表中更新的聊天消息生成第二更新消息列表, 以及确定所述第一客户端的第二等待时长; 服务器生成第二消息推送响应,以及向所述第一客户端返回所述第二消息推送响应; 其中,所述第二消息推送响应携带加 m后的动态消息序号、所述第二更新消息列表、第二等 待时长和所述社交多媒体群组标识。4. 如权利要求3所述的方法,其特征在于,还包括: 若根据预设的时间间隔和预设的查询次数轮询所述社交多媒体群组消息列表中内仍 然不存在更新的聊天消息,确定所述第一客户端的第三等待时长; 服务器生成第三消息推送响应,以及向所述第一客户端返回所述第三消息推送响应; 其中,所述第三消息推送响应携带空的更新消息列表、第三等待时长、所述社交多媒体群组 标识和所述消息序号。5. 如权利要求1所述的方法,其特征在于,所述确定所述第一客户端的第一等待时长包 括: 服务器获取预设时长内所述社交多媒体群组消息列表接收到的聊天消息的数量,根据 所述数量确定所述第一等待时长,其中,所述第一等待时长与所述数量负相关性。6. 如权利要求1所述的方法,其特征在于,还包括: 所述服务器接收第二客户端发送的携带所述社交多媒体群组标识的聊天消息; 所述服务器确定所述社交多媒体群组标识对应的社交多媒体群组消息列表,以及获取 社交多媒体群组消息列表中聊天消息的最大消息序号; 所述服务器将所述最大消息序号加1后作为所述聊天消息的消息序号,以及将所述消 息序号添加到所述聊天消息中; 所述服务器将所述聊天消息存储至所述社交多媒体群组消息列表中。7. -种社交多媒体群组聊天消息的推送方法,其特征在于,包括: 客户端检测到达等待时长时,获取当前的动态消息序号和所在的社交多媒体群组对应 的社交多媒体群组标识; 所述客户端向服务器发送携带所述社交多媒体群组标识和所述动态消息序号的消息 推送请求; 所述客户端接收服务器根据所述消息推送请求返回的消息推送响应;其中,所述消息 推送响应携带更新消息列表、新的等待时长、新的动态消息序号和所述社交多媒体群组标 识; 所述客户端判断所述更新消息列表是否为空; 若为否,所述客户端在所述社交多媒体群组标识对应的社交多媒体群组显示所述更新 消息列表中的聊天消息,以及根据所述新的等待时长更新本地存储的所述等待时长、根据 所述新的动态消息序号更新本地存储的所述动态消息序号。8. 如权利要求7所述的方法,其特征在于,还包括: 若所述更新消息列表为空,将所述新的等待时长更新所述本地存储的等待时长。9. 一种服务器,其特征在于,包括: 接收模块,用于接收第一客户端发送的消息推送请求;其中,所述消息推送请求携带动 态消息序号和社交多媒体群组标识; 判断模块,用于根据确定所述社交多媒体群组标识对应的社交多媒体群组消息列表, 以及根据所述动态消息序号判断所述社交多媒体群组内是否存在更新的聊天消息; 第一更新模块,用于若所述判断模块的判断结果为是,获取所述社交多媒体群组消息 列表中更新的聊天消息的数量n,将所述动态消息序号加 n,n为大于O的整数; 第一确定模块,用于获取所述社交多媒体群组消息列表中更新的聊天消息生成第一更 新消息列表,以及确定所述第一客户端的第一等待时长; 第一响应模块,用于生成消息推送响应,以及向所述第一客户端返回所述推送响应消 息;其中,所述消息推送响应携带加 η后的动态消息序号、所述第一更新消息列表、第一等待 时长和所述社交多媒体群组标识。10. 如权利要求9所述的服务器,其特征在于, 所述消息序号为所述第一客户端待推送的下一个聊天消息的消息序号或所述第一客 户端已推送的聊天消息的最大消息序号。11. 如权利要求9所述的服务器,其特征在于,还包括: 轮询模块,用于若根据所述消息序号判断所述社交多媒体群组消息列表内不存在更新 的社交多媒体群组消息,根据预设的时间间隔和预设的查询次数轮询所述社交多媒体群组 消息列表内是否存在更新的聊天消息; 第二更新模块,用于若所述轮询模块的轮询结果为是,获取所述社交多媒体群组消息 列表中更新的聊天消息的数量m,将所述动态消息序号加 m,m为大于0的整数; 第二确定模块,用于获取所述社交多媒体群组消息列表中更新的聊天消息生成第二更 新消息列表,以及确定所述第一客户端的第二等待时长; 第二响应模块,用于生成第二消息推送响应,以及向所述第一客户端返回所述第二消 息推送响应;其中,所述第二消息推送响应携带加 m后的动态消息序号、所述第二更新消息 列表、第二等待时长和所述社交多媒体群组标识。12. 如权利要求11所述的服务器,其特征在于,还包括: 第三确定模块,用于若根据预设的时间间隔和预设的查询次数轮询所述社交多媒体群 组消息列表中内仍然不存在更新的聊天消息,确定所述第一客户端的第三等待时长; 第三响应模块,用于生成第三消息推送响应,以及向所述第一客户端返回所述第三消 息推送响应;其中,所述第三消息推送响应携带空的更新消息列表、第三等待时长、所述社 交多媒体群组标识和所述消息序号。13. 如权利要求9所述的服务器,其特征在于,所述第一确定模块用于: 所述服务器获取预设时长内所述社交多媒体群组消息列表接收到的聊天消息的数量, 根据所述数量确定所述第一等待时长,其中,所述第一等待时长与所述数量负相关性。14. 如权利要求9所述的服务器,其特征在于,还包括: 聊天消息接收模块,用于接收第二客户端发送的携带所述社交多媒体群组标识的聊天 消息; 序号获取模块,用于确定所述社交多媒体群组标识对应的社交多媒体群组消息列表, 以及获取社交多媒体群组消息列表中聊天消息的最大消息序号; 序号更新模块模块,用于将所述最大消息序号加1后作为所述聊天消息的消息序号,以 及将所述消息序号添加到所述聊天消息中; 存储模块,用于向将所述聊天消息存储在社交多媒体群组消息列表中。15. -种客户端,其特征在于,包括: 检测模块,用于检测到达等待时长时,获取当前的动态消息序号和所在的社交多媒体 群组对应的社交多媒体群组标识; 发送模块,用于向服务器发送携带所述社交多媒体群组标识和所述动态消息序号的消 息推送请求; 接收模块,用于接收服务器根据所述消息推送请求返回的消息推送响应;其中,所述消 息推送响应携带更新消息列表、新的等待时长、新的动态消息序号和所述社交多媒体群组 标识; 判断模块,用于判断所述更新消息列表是否为空; 第一更新模块,用于若所述判断模块的判断结果为否,所述客户端在所述社交多媒体 群组标识对应的社交多媒体群组显示所述更新消息列表中的聊天消息,以及根据所述新的 等待时长更新本地存储的所述等待时长、根据所述新的动态消息序号更新本地存储的所述 动态消息序号。16. 如权利要求15所述的客户端,其特征在于,还包括: 第二更新模块,用于若所述判断模块的判断为是,将所述新的等待时长更新所述本地 存储的等待时长。17. -种社交多媒体聊天系统,其特征在于,包括服务器和客户端, 所述客户端用于向所述服务器发送消息推送请求,接收所述服务器返回的消息推送响 应; 所述服务器用于接收所述客户端发送的所述消息推送请求;其中,所述消息推送请求 携带动态消息序号和社交多媒体群组标识; 根据确定所述社交多媒体群组标识对应的社交多媒体群组消息列表,以及根据所述动 态消息序号判断所述社交多媒体群组内是否存在更新的聊天消息; 若为是,获取所述社交多媒体群组消息列表中更新的聊天消息的数量n,将所述动态消 息序号加 η,n为大于O的整数; 获取所述社交多媒体群组消息列表中更新的聊天消息生成第一更新消息列表,以及确 定所述第一客户端的第一等待时长; 生成所述消息推送响应,以及向所述客户端返回所述推送响应消息;其中,所述消息推 送响应携带加 η后的动态消息序号、所述第一更新消息列表、第一等待时长和所述社交多媒 体群组标识。18.如权利要求17所述的系统,其特征在于,所述服务器包括一个接收服务器和多个发 送服务器。
【文档编号】H04L12/58GK105933213SQ201610471610
【公开日】2016年9月7日
【申请日】2016年6月24日
【发明人】颜楚雄, 王雅光, 屈树谦
【申请人】腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1