CN108206742B - 一种消息发送方法、装置、服务器以及系统 - Google Patents
一种消息发送方法、装置、服务器以及系统 Download PDFInfo
- Publication number
- CN108206742B CN108206742B CN201611179889.XA CN201611179889A CN108206742B CN 108206742 B CN108206742 B CN 108206742B CN 201611179889 A CN201611179889 A CN 201611179889A CN 108206742 B CN108206742 B CN 108206742B
- Authority
- CN
- China
- Prior art keywords
- message
- group
- server
- scale
- request
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/185—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1813—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1859—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast adapted to provide push services, e.g. data channels
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提出一种消息发送方法、装置、服务器与系统。所述方法包括:接收来自消息发送客户端的消息,解析所述消息所属的会话组群,并从成员列表服务器获取所述会话组群的成员信息;通过推送通道将所述消息推送至所述会话组群的成员信息对应的消息接收客户端;判断所述消息所属的会话组群规模,如果所述会话组群为大规模组群,消息服务器将所述消息发送至分布式消息缓存服务器,以使得所述分布式消息缓存服务器接收来自消息接收客户端的拉消息请求,并通过消息推拉通道向发出请求的接收方客户端发送所述请求对应的消息。
Description
技术领域
本发明属于通信技术领域,特别涉及一种消息发送方法、装置、服务器以及系统。
背景技术
推送消息模式是即时通信中运用范围最广的一种消息下行方式,运用在公开群、讨论组和聊天室等多种类型的会话群组中。对于每一条上行消息,服务器都需要解析出消息属于哪个聊天室,遍历一次所属聊天室的成员表中的映射关系,找到成员对应的链路信息并发起推送。然而,对于成员人数规模很大的聊天室,聊天室的成员表需要被频繁访问,因此一般存储在服务器的内存中,存储聊天室所有成员的成员表为服务器带来了巨大的存储开销。同时,因为大规模聊天室的人员进出频繁,聊天室的人数可能因为某项热点而发生突增,这样的不可预见性使得为成员表在内存中预留空间变得非常困难。另外,当有成员进出聊天室的时候,都需要修改成员表,如果成员表中的成员按照账号大小保持有序的话,每次修改都会引起大量的内存拷贝。
发明内容
为了解决现有技术中存在的技术问题,本发明实施例提供一种消息发送方法、装置、服务器以及系统。
第一方面,提供了一种消息发送方法,所述方法包括:
消息服务器接收来自消息发送客户端的消息,解析所述消息所属的会话组群,并从成员列表服务器获取所述会话组群的成员信息;
消息服务器通过推送通道将所述消息推送至所述会话组群的成员信息对应的消息接收客户端;
消息服务器判断所述消息所属的会话组群规模,如果所述会话组群为大规模组群,消息服务器将所述消息发送至分布式消息缓存服务器;
分布式消息缓存服务器接收来自消息接收客户端的拉消息请求,并通过消息推拉通道向发出请求的接收方客户端发送所述请求对应的消息。
第二方面,提供了一种消息发送系统,所述系统包括:信息发送客户端、消息服务器、分布式消息缓存服务器、消息接收客户端;
所述消息服务器用于接收来自消息发送客户端的消息,解析所述消息所属的会话组群,并从成员列表服务器获取所述会话组群的成员信息;通过推送通道将所述消息推送至所述会话组群的成员信息对应的消息接收客户端;判断所述消息所属的会话组群规模,如果所述会话组群为大规模组群,消息服务器将所述消息发送至分布式消息缓存服务器;
所述分布式消息缓存服务器用于接收来自消息接收客户端的拉消息请求,并通过消息推拉通道向发出请求的接收方客户端发送所述请求对应的消息。
第三方面,提供了一种消息发送方法,所述方法包括:
接收来自消息发送客户端的消息,解析所述消息所属的会话组群,并从成员列表服务器获取所述会话组群的成员信息;
通过推送通道将所述消息推送至所述会话组群的成员信息对应的消息接收客户端;
判断所述消息所属的会话组群规模,如果所述会话组群为大规模组群,消息服务器将所述消息发送至分布式消息缓存服务器,以使得所述分布式消息缓存服务器接收来自消息接收客户端的拉消息请求,并通过消息推拉通道向发出请求的接收方客户端发送所述请求对应的消息。
第四方法,提供一种消息发送装置,所述装置包括:
消息接收模块,用于接收来自消息发送客户端的消息,解析所述消息所属的会话组群,并从成员列表服务器获取所述会话组群的成员信息;
消息推送模块,用于通过推送通道将所述消息推送至所述会话组群的成员信息对应的消息接收客户端;
判断与发送模块,用于判断所述消息所属的会话组群规模,如果所述会话组群为大规模组群,消息服务器将所述消息发送至分布式消息缓存服务器,以使得所述分布式消息缓存服务器接收来自消息接收客户端的拉消息请求,并通过消息推拉通道向发出请求的接收方客户端发送所述请求对应的消息。
第五方法,提供一种服务器,包含前述的消息发送装置。
本发明实施例提供的技术方案带来的有益效果包括:能够根据会话组群的规模自动选择推送消息模式还是拉取消息模式。在聊天室规模较小时,采取推送消息模式进行消息传送,避免大量的小规模聊天室消耗占用拉消息模式通道的带宽和存储资源。当聊天室规模突破一定的上限,达到大规模聊天室时,聊天室消息同时通过推送和拉取两种模式传送,避免聊天室成员列表的继续上涨而引起的查询和更新成员列表产生的开销。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的实施环境的示意图;
图2(a)是本发明一个实施例提供的消息发送方法流程图;
图2(b)是本发明一个实施例提供的消息发送方法流程图;
图2(c)是本发明一个实施例提供的消息发送方法流程图;
图3是本发明一个实施例提供的消息发送方法流程图;
图4是本发明一个实施例提供的消息发送方法流程图;
图5是本发明一个实施例提供的消息发送装置的框图;
图6是本发明一个实施例提供的消息发送系统的框图;
图7是本发明一个实施例提供的终端的结构示意图;
图8是本发明一个实施例提供的服务器的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
请参考图1,其示出了本发明一个实施例提供的实施环境的示意图。该实施环境包括:信息发送终端120、后台服务器集群140和信息接收终端160。后台服务器集群140包括:消息服务器142、成员列表服务器144、消息缓存服务器群组146。
发送终端120中运行有发送方客户端。发送终端120可以是手机、平板电脑、电子书阅读器、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
后台服务器集群140可以是是由若干台服务器组成的服务器集群,或者是一个云计算服务中心。
接收终端160中运行有接收方客户端。接收终端160也可以是个人电脑、笔记本电脑、手机、平板电脑、电子书阅读器、MP3(Moving Picture Experts Group Audio LayerIII,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture Experts GroupAudio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
后台服务器140可以通过网络分别与发送终端120和接收终端160建立通信连接。该网络可以是无线网络,也可以是有线网络。
在本发明实施例中,发送方客户端和接收方客户端可以是任何具备虚拟物品收发功能的客户端。例如,发送方客户端可以是社交类应用客户端、即时通信客户端、支付类应用客户端、游戏客户端、阅读客户端、专用于发送虚拟物品的客户端等等。
在实际应用中,发送方客户端和接收方客户端可以是两个具有不同功能的客户端,其中发送方客户端具备发送虚拟物品的功能,接收方客户端具备接收虚拟物品的功能。或者,发送方客户端和接收方客户端也可以是两个具有相同功能的客户端,该客户端具备发送和接收虚拟物品的功能。当该客户端用于实现本发明方法示例中发送方客户端侧的功能时,该客户端即作为发送方客户端;当该客户端用于实现本发明方法示例中接收方客户端侧的功能时,该客户端即作为接收方客户端。相应地,发送终端和接收终端均为终端设备。当该终端设备中运行的客户端用于实现本发明方法示例中发送方客户端侧的功能时,该终端设备即作为发送终端;当该终端设备中运行的客户端用于实现本发明方法示例中接收方客户端侧的功能时,该终端设备即作为接收终端。在实际应用中,对于同一个客户端来讲,其可以作为发送方客户端,也可以作为接收方客户端。对于同一台终端,其可以作为发送终端,也可以作为接收终端。
在本发明实施例中,消息还可以称为信息、会话消息、聊天消息,是一种在至少两个用户之间通过通信链路传送的内容的载体。该至少两个用户在客户端和/或真实世界中具有好友关系,也可以不具有好友关系。消息内容可以是文本、图片、表情、视频、虚拟物品、游戏装备、游戏材料、游戏宠物、游戏币、图标、会员、称号、增值业务、积分、元宝、金豆、礼金券、兑换券、优惠券、贺卡等等。本发明实施例对消息类型不作限定。
消息服务器142用于提供消息发送客户端和消息接收客户端之间的消息转发服务。提供发送方客户端和接收方客户端之间进行文字、图片、视频、视频等消息的转发。
例如,消息服务器142用于接收来自消息发送客户端的消息,并通过预设的通道对消息进行转发。
成员列表服务器144用于存储会话群组的成员信息。
消息缓存服务器群组146用于接收消息服务器转发的消息,并将消息存储在服务器群组中的每一个节点上,并相应于消息接收客户端的请求,对消息尽心查询,将满足请求条件的消息通过拉消息通道发送到发出请求的消息接收客户端。
上述各个服务器之间可通过网络建立通信连接。该网络可以是无线网络,也可以是有线网络。
请参考图2(a),其示出了本发明一个实施例提供的消息发送方法。该方法可应用于图1所示实施环境中。该方法可以包括如下步骤:
步骤201,消息服务器接收来自消息发送客户端的消息,解析所述消息所属的会话组群,并从成员列表服务器获取所述会话组群的成员信息;
步骤202,消息服务器通过推送通道将所述消息推送至所述会话组群的成员信息对应的消息接收客户端;
步骤203,消息服务器判断所述消息所属的会话组群规模,如果所述会话组群为大规模组群,消息服务器将所述消息发送至分布式消息缓存服务器;
请参考图2(b),步骤203还进一步包含如下子步骤:
步骤2031,所述消息服务器读取会话组群规模标识信息,所述会话组群规模标识信息包括所述会话组群成员数量与预置阈值的大小关系;
步骤2032,若所述会话组群成员数量大于所述预置阈值,则会话组群为大规模组群;
步骤2032,若所述会话组群成员数量小于所述预置阈值,则会话组群为小规模组群。
步骤204,分布式消息缓存服务器接收来自消息接收客户端的拉消息请求,并通过消息推拉通道向发出请求的接收方客户端发送所述请求对应的消息。
请参考图2(c),步骤204还进一步包含如下子步骤:
步骤2041,分布式消息缓存服务器接收来自客户端的拉消息请求;
步骤2042,分布式消息缓存服务器解析所述拉消息请求中的请求条件;
步骤2043,分布式消息缓存服务器通过所述请求条件查询是否有满足请求条件的消息;
步骤2044,若存在满足所述请求条件的消息,分布式消息缓存服务器通过消息推拉通道将所述满足请求条件的消息发送至发出请求的客户端;
步骤2045,若不存在满足所述请求条件的消息,所述分布式消息缓存服务器检查轮询等待时间是否超时,若未超时,所述分布式消息缓存服务器检继续查轮询等待时间是否超时;若超时,所述分布式消息缓存服务器于一预定时间后再次检查是否有满足要求的消息。
综上所述,本实施例提供的方法,能够根据会话组群的规模自动选择推送消息模式还是拉取消息模式。在聊天室规模较小时,采取推送消息模式进行消息传送,避免大量的小规模聊天室消耗占用拉消息模式通道的带宽和存储资源。当聊天室规模突破一定的上限,达到大规模聊天室时,聊天室消息同时通过推送和拉取两种模式传送,避免聊天室成员列表的继续上涨而引起的查询和更新成员列表产生的开销。
请参考图3,其中示例性地披露了组群用户加入会话组群的过程,包括:
步骤301,消息服务器等待来自客户端的加群请求;
步骤302,消息服务器判断是否有加群请求,若是,进入步骤303,若否,则进入步骤302;
步骤303,消息服务器判断待加入的会话群组是否为大规模组群,若是,进入步骤304,否则进入步骤305;
步骤304,当前群组为大规模群组,服务器应答客户端需以拉取消息模式获取消息,并返回步骤301;
步骤305,当前群组非大规模群组,新加入的群成员只需要以被动获取消息的方式等待服务器推消息,进入步骤306;
步骤306,更新群成员列表,并检查聊天室人数规模是否已经达到上限,若是,进入步骤307,否则进入步骤308;
步骤307,将该聊天室的大群开关打开,以后加入的成员将以拉取消息模式获取消息,进入步骤308;
步骤308,应答客户端以等待服务器推送消息获取聊天室的消息。
请参考图4,其示出了本发明另一实施例提供的消息发送方法的流程图。
步骤401,发送发客户端生成消息。
消息是一种在至少两个用户之间通过通信链路传送的内容的载体。消息发送客户端提供有用于发送消息的操作控件,用户在该操作控件输入消息内容。
在一个示例中,消息发送客户端显示会话界面,该会话界面可以是单人聊会话界面,也可以是聊天群会话界面;在获取到对应于会话界面中的菜单控件的触发信号之后,显示功能菜单,功能菜单中包括用于发送消息的操作控件;在获取到对应于该操作控件的输入内容以及触发信号之后,消息被生成并发送。
在一个示例中,用户在消息发送客户端的聊天界面内输入的内容包括文本消息、图片消息、表情消息、文件消息等等。当然,在消息中,还包含有会话组群的信息,例如会话组群的成员信息,通信链路信息等等。
步骤402,消息发送客户端将消息通过接入层链路发送至消息服务器。
消息发送客户端在获取到发送页面中的触发信号之后,会通过上行链路将消息发送至消息服务器。
在一个示例中,消息服务器与消息发送客户端之间并不直接通信连接,而是分别与接入层的通信链路通信,消息发送客户端将消息发送至接入层通信链路,消息在接入层通信链路中传输,消息服务器从接入层通信链路中接收消息。可见,上行消息服务器和消息缓存服务器不是直接与终端交互消息,而是通过同接入层的链路进行交互。
步骤403,消息服务器接收来自消息发送客户端的消息。
消息服务器接收到来自消息发送客户端的消息之后,对消息进行编号,编号是按照顺序对消息的条目进行编号。
在一个示例中,消息服务器对每个会话群组的消息进行顺序编号,例如某聊天群组按照时间顺序接收到的消息分别编号为1、2、3……,另一个聊天群组也按照时间顺序将接收到的消息编号为1、2、3……,以保证每个会话群组中的消息有序而不重复。
步骤404,消息服务器接收客户端解析消息所属的会话组群。
在接收到消息之后,消息服务器还会对消息进行解析,解析包括解析消息的内容,消息中包含的链路信息,消息所属的会话组群以及消息的类型等等。
在一个示例中,对于N个成员的群组,每产生一条上行消息,就需要在内存中迭代一次这个聊天室的成员表,时间复杂度是O(N)。然而,大规模的聊天室成员往往十分活跃,每秒会产生大量的上行消息,对服务器产生巨大的计算开销。如果每秒产生的上行消息数为M,那么服务器的计算压力正比于M和N的乘积,所以大规模聊天室的人数增长对服务的计算压力成几何增长。
步骤405,消息服务器向成员列表服务器发送组群成员信息获取请求。
在对消息进行解析之后,消息服务器会向成员列表服务器发送信息获取请求,将解析得到的成员列表发送至成员列表服务器。
步骤406,成员列表服务器查询组群成员信息。
成员列表服务器接收消息服务器发送的成员列表,并根据成员列表查询成员列表对应的成员信息。在一个示例中,成员信息包含列表中成员的通信链路信息。
步骤407,成员列表服务器返回会话组群的成员信息。
成员列表服务器会将查询得到的成员信息返回给消息服务器,返回的成员信息至少包含会话组群成员的链路信息。
步骤408,消息服务器接收成员信息,解析会话组群成员信息。
消息服务器在接收到成员信息之后,会对会话组群的成员信息进行解析,得到成员信息。成员信息中至少包含了会话组群的成员链路信息。
步骤409,消息服务器通过推送通道向所述成员信息对应的消息接收客户端发送所述消息。
消息服务器根据成员信息中的链路信息通过信息推送通道向消息接收客户端发送消息。即,通过以上步骤,消息服务器实现了将所有来自发送客户端的消息全部转发至成员列表服务器中记录的组群人员。
步骤410,消息服务器判断消息所属会话组群的规模。
在将消息通过推送通道转发之后,消息服务器会判断消息所属的聊天组群的规模,聊天组群的规模判断是通过消息服务器中的聊天组群规模标识位来实现的。聊天组群标识位会在聊天组群的人员信息大于预设阈值时显示聊天所属组群为大规模组群,相对地,聊天组群标识位会在聊天组群的人员信息小于预设阈值时显示聊天所属组群非大规模组群。
步骤411,若会话组群为大规模组群,消息服务器将所述消息发送至分布式消息缓存服务器。
当消息服务器判断当前消息所属的组群为大规模组群时,消息服务器将消息发送至分布式消息缓存服务器。消息存储在分布式消息缓存服务器的每一个节点上。
在使用消息缓存服务器来缓存消息时,服务器不再维护聊天室的成员表。收到上行消息后,服务器将消息发布到分布式消息缓存服务器中,以聊天室的ID作为键缓存起来。当有人加入聊天室后,就可以定时向消息缓存服务器拉取该聊天室的消息。
这种消息下行方式很好地解决了推送消息模式存储和查找大成员表的问题,但是对于实际情况中大量存在的小规模聊天室却带来了新的问题。通常情况下,小规模群组的数量远多于大规模聊天室。但是,虽然小规模的聊天室的聊天消息较少,但是仍然会定时产生一定数量的系统消息和系统通知,也就是说,小规模聊天室的上行消息与成员数比例大于大规模聊天室。因此所有小规模聊天室的消息总和会远远超过大规模聊天室,在以下两方面为拉取消息通道造成压力:
一、上行消息需要通过消息队列分发给分布式消息缓存服务器,通常多台消息缓存服务器订阅一台消息队列服务器。小规模聊天室的消息将过度消耗消息队列服务器有限的带宽,造成消息队列服务器可被订阅的消息缓存服务器比例急剧下降。
二、每一台消息缓存服务器将缓存所有聊天室的消息,而小聊天室消息将过度消耗服务器有限的内存。如果让消息缓存服务器根据消息进行分片,又需要大量增加消息缓存服务器的数量,同时增加聊天室拉取消息路由寻址的复杂度。
通过步骤401至步骤410的会话组群规模判断过程,可以根据聊天室的规模自动选择推送消息模式还是拉取消息模式。在聊天室规模较小时,默认采取推送模式,避免大量的小规模聊天室消耗占用拉消息模式通道的带宽和存储资源。当聊天室规模突破一定的上限时,聊天室消息同时走推送和拉取两种模式的通道,避免聊天室成员列表的继续上涨而引起的查询和更新成员列表产生的开销。
步骤412,消息接收客户端通过消息拉取通道向分布式消息缓存服务器发送消息拉取请求。
会话组群内除通过消息推送通道接收消息的客户端外还有部分通过消息推拉通道接收消息的客户端,当通过消息推拉通道接收消息的客户端需要接收消息时,其会通过消息推拉通道向分布式消息缓存服务器发送消息拉取请求。
步骤413,分布式消息缓存服务器响应消息拉取请求。
分布式消息缓存服务器会响应来自消息接收客户端的消息拉取请求,并根据请求中所附带的条件在服务器端进行查询。
在一个示例中,分布式消息缓存服务器接收来自客户端的拉消息请求;分布式消息缓存服务器解析所述拉消息请求中的请求条件;分布式消息缓存服务器通过所述请求条件查询是否有满足请求条件的消息;若存在满足所述请求条件的消息,执行步骤414。
在一个示例中,若不存在满足所述请求条件的消息,所述分布式消息缓存服务器检查轮询等待时间是否超时,若未超时,所述分布式消息缓存服务器继续检查轮询等待时间是否超时;若超时,所述分布式消息缓存服务器于一预定时间后再次检查是否有满足要求的消息。
步骤414,分布式消息缓存服务器通过消息拉取通道向发出请求的接收方客户端发送所述消息。
分布式消息缓存服务器通过消息推拉通道将所述满足请求条件的消息发送至发出请求的客户端。
综上所述,本实施例提供的方法能够在会话组群成员达到一定阈值后切换消息的发送方式,从而在聊天室的成员表需要被频繁访问时,避免大规模聊天室(如直播聊天室)的成员表远大于一般传统聊天室(千人以内)时,存储聊天室所有成员的成员表为服务器带来了巨大的存储开销。同时,本实施例提供的方法可以避免因为大规模聊天室的人员进出频繁,聊天室的人数可能因为某项热点而发生突增,从而造成的不可预见性使得为成员表在内存中预留空间变得非常困难。还可以避免每当有成员进出聊天室的时候,都需要修改成员表,从而引起大量的内存拷贝。
请参考图5,其示出了本发明一实施例提供的消息发送装置,所述装置应用于如图1所示的应用场景中,包括:
消息接收模块,执行步骤201,用于接收来自消息发送客户端的消息,解析所述消息所属的会话组群,并从成员列表服务器获取所述会话组群的成员信息;
消息推送模块,执行步骤202,用于通过推送通道将所述消息推送至所述会话组群的成员信息对应的消息接收客户端;
判断与发送模块,执行步骤203,用于判断所述消息所属的会话组群规模,如果所述会话组群为大规模组群,消息服务器将所述消息发送至分布式消息缓存服务器;
判断与发送模块,还进一步包含如下子模块:
会话组群规模标识信息读取模块,执行步骤2031,用于读取会话组群规模标识信息,所述会话组群规模标识信息包括所述会话组群成员数量与预置阈值的大小关系;
第一逻辑判断模块,执行步骤2032,用于在所述会话组群成员数量大于所述预置阈值时,将会话组群判别为大规模组群;
第二逻辑判断模块,执行步骤2033,用于在所述会话组群成员数量小于所述预置阈值时,将会话组群判别为小规模组群。
消息推拉模块,执行步骤204,用于接收来自消息接收客户端的拉消息请求,并通过消息推拉通道向发出请求的接收方客户端发送所述请求对应的消息。
消息推拉模块还进一步包含如下子模块:
请求接收子模块,执行步骤2041,用于接收来自客户端的拉消息请求;
请求解析子模块,执行步骤2042,用于解析所述拉消息请求中的请求条件;
查询子模块,执行步骤2043,用于通过所述请求条件查询是否有满足请求条件的消息;
推拉通道消息发送模块,执行步骤2044,用于在存在满足所述请求条件的消息时,通过消息推拉通道将所述满足请求条件的消息发送至发出请求的客户端;
轮询等待模块,执行步骤2045,用于在不存在满足所述请求条件的消息时,检查轮询等待时间是否超时,若未超时,继续查轮询等待时间是否超时;若超时,于一预定时间后再次检查是否有满足要求的消息。
请参考图6,其示出了本发明一实施例提供的消息发送装置,所述装置应用于如图1所示的应用场景中,装置包括如下模块:
消息生成模块,执行步骤401,用于生成消息。
消息是一种在至少两个用户之间通过通信链路传送的内容的载体。消息发送客户端提供有用于发送消息的操作控件,用户在该操作控件输入消息内容。
在一个示例中,消息发送客户端显示会话界面,该会话界面可以是单人聊会话界面,也可以是聊天群会话界面;在获取到对应于会话界面中的菜单控件的触发信号之后,显示功能菜单,功能菜单中包括用于发送消息的操作控件;在获取到对应于该操作控件的输入内容以及触发信号之后,消息被生成并发送。
在一个示例中,用户在消息发送客户端的聊天界面内输入的内容包括文本消息、图片消息、表情消息、文件消息等等。当然,在消息中,还包含有会话组群的信息,例如会话组群的成员信息,通信链路信息等等。
消息发送模块,执行步骤402,用于将消息通过接入层链路发送至消息服务器。
消息发送客户端在获取到发送页面中的触发信号之后,会通过上行链路将消息发送至消息服务器。
在一个示例中,消息服务器与消息发送客户端之间并不直接通信连接,而是分别与接入层的通信链路通信,消息发送客户端将消息发送至接入层通信链路,消息在接入层通信链路中传输,消息服务器从接入层通信链路中接收消息。可见,上行消息服务器和消息缓存服务器不是直接与终端交互消息,而是通过同接入层的链路进行交互。
消息接收模块,执行步骤403,用于接收来自消息发送客户端的消息。
消息服务器接收到来自消息发送客户端的消息之后,对消息进行编号,编号是按照顺序对消息的条目进行编号。
消息解析模块,执行步骤404,用于解析消息所属的会话组群。
在接收到消息之后,消息服务器还会对消息进行解析,解析包括解析消息的内容,消息中包含的链路信息,消息所属的会话组群以及消息的类型等等。
成员信息获取模块,执行步骤405,用于向成员列表服务器发送组群成员信息获取请求。
在对消息进行解析之后,消息服务器会向成员列表服务器发送信息获取请求,将解析得到的成员列表发送至成员列表服务器。
查询模块,执行步骤406,用于查询组群成员信息。
成员列表服务器接收消息服务器发送的成员列表,并根据成员列表查询成员列表对应的成员信息。在一个示例中,成员信息包含列表中成员的通信链路信息。
成员信息返回模块,执行步骤407,用于返回会话组群的成员信息。
成员列表服务器会将查询得到的成员信息返回给消息服务器,返回的成员信息至少包含会话组群成员的链路信息。
成员信息解析模块,执行步骤408,用于接收成员信息,解析会话组群成员信息。
消息服务器在接收到成员信息之后,会对会话组群的成员信息进行解析,得到成员信息。成员信息中至少包含了会话组群的成员链路信息。
消息推送模块,执行步骤409,用于通过推送通道向所述成员信息对应的消息接收客户端发送所述消息。
消息服务器根据成员信息中的链路信息通过信息推送通道向消息接收客户端发送消息。即,通过以上步骤,消息服务器实现了将所有来自发送客户端的消息全部转发至成员列表服务器中记录的组群人员。
组群规模判断模块,执行步骤410,用于判断消息所属会话组群的规模。
在将消息通过推送通道转发之后,消息服务器会判断消息所属的聊天组群的规模,聊天组群的规模判断是通过消息服务器中的聊天组群规模标识位来实现的。聊天组群标识位会在聊天组群的人员信息大于预设阈值时显示聊天所属组群为大规模组群,相对地,聊天组群标识位会在聊天组群的人员信息小于预设阈值时显示聊天所属组群非大规模组群。
组群规模判断模块中包含第一逻辑判断模块,执行步骤411,用于在会话组群为大规模组群时,将所述消息发送至分布式消息缓存服务器。
当消息服务器判断当前消息所属的组群为大规模组群时,消息服务器将消息发送至分布式消息缓存服务器。消息存储在分布式消息缓存服务器的每一个节点上。
消息请求模块,执行步骤412,用于通过消息拉取通道向分布式消息缓存服务器发送消息拉取请求。
会话组群内除通过消息推送通道接收消息的客户端外还有部分通过消息推拉通道接收消息的客户端,当通过消息推拉通道接收消息的客户端需要接收消息时,其会通过消息推拉通道向分布式消息缓存服务器发送消息拉取请求。
请求响应模块,执行步骤413,用于响应消息拉取请求。
分布式消息缓存服务器会响应来自消息接收客户端的消息拉取请求,并根据请求中所附带的条件在服务器端进行查询。
在一个示例中,分布式消息缓存服务器接收来自客户端的拉消息请求;分布式消息缓存服务器解析所述拉消息请求中的请求条件;分布式消息缓存服务器通过所述请求条件查询是否有满足请求条件的消息;若存在满足所述请求条件的消息,则执行步骤414。
在一个示例中,若不存在满足所述请求条件的消息,所述分布式消息缓存服务器检查轮询等待时间是否超时,若未超时,所述分布式消息缓存服务器继续检查轮询等待时间是否超时;若超时,所述分布式消息缓存服务器于一预定时间后再次检查是否有满足要求的消息。
推拉通道消息发送模块,执行步骤414,用于通过消息拉取通道向发出请求的接收方客户端发送所述消息。
分布式消息缓存服务器通过消息推拉通道将所述满足请求条件的消息发送至发出请求的客户端。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图7,其示出了本发明一个实施例提供的终端的结构示意图。该终端用于实施上述实施例中提供的发送方客户端侧的虚拟物品发送方法,或者用于实施上述实施例中提供的接收方客户端侧的虚拟物品接收方法。具体来讲:
终端700可以包括RF(Radio Frequency,射频)电路710、包括有一个或一个以上计算机可读存储介质的存储器720、输入单元730、显示单元740、视频传感器750、音频电路760、WiFi(wireless fidelity,无线保真)模块770、包括有一个或者一个以上处理核心的处理器780、以及电源990等部件。本领域技术人员可以理解,图7中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路710可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器780处理;另外,将涉及上行的数据发送给基站。通常,RF电路710包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路710还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(CodeDivision Multiple Access,码分多址)、WCDMA(Wideband Code Division MultipleAccess,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(ShortMessaging Service,短消息服务)等。
存储器720可用于存储软件程序以及模块,处理器780通过运行存储在存储器720的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器720可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端700的使用所创建的数据(比如视频数据、电话本等)等。此外,存储器720可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器720还可以包括存储器控制器,以提供处理器780和输入单元730对存储器720的访问。
输入单元730可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元730可包括图像输入设备731以及其他输入设备732。图像输入设备731可以是摄像头,也可以是光电扫描设备。除了图像输入设备731,输入单元730还可以包括其他输入设备732。具体地,其他输入设备732可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元740可用于显示由用户输入的信息或提供给用户的信息以及终端700的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元740可包括显示面板741,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,15有机发光二极管)等形式来配置显示面板741。
终端700可包括至少一种视频传感器750,视频传感器用于获取用户的视频信息。终端700还可以包括其它传感器(未示出),比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板741的亮度,接近传感器可在终端700移动到耳边时,关闭显示面板741和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端700还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
视频电路760、扬声器761,传声器762可提供用户与终端700之间的视频接口。音频电路760可将接收到的音频数据转换后的电信号,传输到扬声器761,由扬声器761转换为声音信号输出;另一方面,传声器762将收集的声音信号转换为电信号,由音频电路760接收后转换为音频数据,再将音频数据输出处理器780处理后,经RF电路77以发送给比如另一终端,或者将音频数据输出至存储器720以便进一步处理。音频电路760还可能包括耳塞插孔,以提供外设耳机与终端700的通信。
WiFi属于短距离无线传输技术,终端700通过WiFi模块70可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图7示出了WiFi模块770,但是可以理解的是,其并不属于终端700的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器780是终端700的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器720内的软件程序和/或模块,以及调用存储在存储器720内的数据,执行终端700的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器780可包括一个或多个处理核心;优选的,处理器780可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。
可以理解的是,上述调制解调处理器也可以不集成到处理器780中。
终端700还包括给各个部件供电的电源790(比如电池),优选的,电源可以通过电源管理系统与处理器780逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源990还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,终端700还可以包括蓝牙模块等,在此不再赘述。
具体在本实施例中,终端700还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。上述一个或者一个以上程序包含用于执行上述发送方客户端侧或者接收方客户端侧的方法的指令。
请参考图8,其示出了本发明一个实施例提供的服务器的结构示意图。该服务器用于实施上述实施例中提供的后台服务器侧的虚拟物品发送方法。具体来讲:
所述服务器1200包括中央处理单元(CPU)1201、包括随机存取存储器(RAM)1202和只读存储器(ROM)1203的系统存储器1204,以及连接系统存储器1204和中央处理单元1201的系统总线1205。所述服务器1200还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)1206,和用于存储操作系统1213、应用程序1214和其他程序模块1215的大容量存储设备1207。
所述基本输入/输出系统1206包括有用于显示信息的显示器1208和用于用户输入信息的诸如鼠标、键盘之类的输入设备1209。其中所述显示器1208和输入设备1209都通过连接到系统总线1205的输入输出控制器1210连接到中央处理单元1201。所述基本输入/输出系统1206还可以包括输入输出控制器1210以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1210还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备1207通过连接到系统总线1205的大容量存储控制器(未示出)连接到中央处理单元1201。所述大容量存储设备1207及其相关联的计算机可读介质为服务器1200提供非易失性存储。也就是说,所述大容量存储设备1207可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1204和大容量存储设备1207可以统称为存储器。
根据本发明的各种实施例,所述服务器1200还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器1200可以通过连接在所述系统总线1205上的网络接口单元1211连接到网络1212,或者说,也可以使用网络接口单元1211来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。上述一个或者一个以上程序包含用于执行上述后台服务器侧的方法的指令。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由终端的处理器执行以完成上述方法实施例中发送方客户端或接收方客户端侧的各个步骤,或者上述指令由服务器的处理器执行以完成上述方法实施例中后台服务器侧的各个步骤。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (25)
1.一种消息发送方法,其特征在于,所述方法包括如下步骤:
消息服务器接收来自消息发送客户端的消息,解析所述消息所属的会话组群;
消息服务器判断所述消息所属的会话组群规模;
如果所述会话组群为非大规模组群,消息服务器从成员列表服务器获取所述会话组群的成员信息,以及通过推送通道将所述消息推送至所述会话组群的成员信息对应的消息接收客户端;
如果所述会话组群为大规模组群,消息服务器继续通过推送通道将所述消息推送至所述会话组群的成员信息对应的消息接收客户端,所述会话组群的成员信息指示判定所述会话组群为大规模组群之前的加群成员;消息服务器将所述消息发送至分布式消息缓存服务器;分布式消息缓存服务器接收来自判定所述会话组群为大规模组群之后的加群成员对应的消息接收客户端的拉消息请求,并通过消息推拉通道向发出请求的客户端发送所述请求对应的消息。
2.根据权利要求1所述的方法,其特征在于,所述从成员列表服务器获取所述会话组群的成员信息包括:
消息服务器向所述成员列表服务器发送会话组群的成员查询请求;
所述成员列表服务器根据会话组群查询会话组群的成员信息,并将所述会话组群的成员信息发送给所述消息服务器。
3.根据权利要求1所述的方法,其特征在于,所述消息服务器判断所述消息所属的会话组群规模,包括:
所述消息服务器读取会话组群规模标识,所述会话组群规模标识反映所述会话组群成员数量与预置阈值的大小关系;
根据所述会话组群规模标识判断所述会话组群是否为大规模组群。
4.根据权利要求3所述的方法,其特征在于,若所述会话组群成员数量大于所述预置阈值,所述会话组群规模标识反映会话组群为大规模组群;若所述会话组群成员数量小于所述预置阈值,所述会话组群规模标识反映会话组群为小规模组群。
5.根据权利要求1所述的方法,其特征在于,分布式消息缓存服务器接收来自判定所述会话组群为大规模组群之后的加群成员对应的消息接收客户端的拉消息请求,并通过消息推拉通道向发出请求的客户端发送所述请求对应的消息包括:
分布式消息缓存服务器接收来自判定所述会话组群为大规模组群之后的加群成员对应的消息接收客户端的拉消息请求;
分布式消息缓存服务器解析所述拉消息请求中的请求条件;
分布式消息缓存服务器通过所述请求条件查询是否有满足请求条件的消息;
若存在满足所述请求条件的消息,分布式消息缓存服务器通过消息推拉通道将所述满足请求条件的消息发送至发出请求的客户端。
6.根据权利要求5所述的方法,其特征在于,若不存在满足所述请求条件的消息,所述分布式消息缓存服务器检查轮询等待时间是否超时,若未超时,所述分布式消息缓存服务器继续检查轮询等待时间是否超时;若超时,所述分布式消息缓存服务器于一预定时间后再次检查是否有满足要求的消息。
7.一种消息发送系统,其特征在于,所述系统包括:
消息服务器,用于接收来自消息发送客户端的消息,解析所述消息所属的会话组群;判断所述消息所属的会话组群规模,如果所述会话组群为非大规模组群,从成员列表服务器获取所述会话组群的成员信息,通过推送通道将所述消息推送至所述会话组群的成员信息对应的消息接收客户端;如果所述会话组群为大规模组群,继续通过推送通道将所述消息推送至所述会话组群的成员信息对应的消息接收客户端,所述会话组群的成员信息指示判定所述会话组群为大规模组群之前的加群成员;将所述消息发送至分布式消息缓存服务器;
分布式消息缓存服务器,用于接收来自判定所述会话组群为大规模组群之后的加群成员对应的消息接收客户端的拉消息请求,并通过消息推拉通道向发出请求的客户端发送所述请求对应的消息。
8.根据权利要求7所述的系统,其特征在于:
消息服务器向所述成员列表服务器发送会话组群的成员查询请求;
所述成员列表服务器根据会话组群查询会话组群的成员信息,并将所述会话组群的成员信息发送给所述消息服务器。
9.根据权利要求7所述的系统,其特征在于,所述消息服务器判断所述消息所属的会话组群规模,包括:
所述消息服务器读取会话组群规模标识,所述会话组群规模标识反映所述会话组群成员数量与预置阈值的大小关系;
根据所述会话组群规模标识判断所述会话组群是否为大规模组群。
10.根据权利要求9所述的系统,其特征在于,若所述会话组群成员数量大于所述预置阈值,所述会话组群规模标识反映会话组群为大规模组群;若所述会话组群成员数量小于所述预置阈值,所述会话组群规模标识反映会话组群为小规模组群。
11.根据权利要求7所述的系统,其特征在于,分布式消息缓存服务器接收来自判定所述会话组群为大规模组群之后的加群成员对应的消息接收客户端的拉消息请求,并通过消息推拉通道向发出请求的客户端发送所述请求对应的消息包括:
分布式消息缓存服务器接收来自判定所述会话组群为大规模组群之后的加群成员对应的消息接收客户端的拉消息请求;
分布式消息缓存服务器解析所述拉消息请求中的请求条件;
分布式消息缓存服务器通过所述请求条件查询是否有满足请求条件的消息;
若存在满足所述请求条件的消息,分布式消息缓存服务器通过消息推拉通道将所述满足请求条件的消息发送至发出请求的客户端。
12.根据权利要求11所述的系统,其特征在于,若不存在满足所述请求条件的消息,所述分布式消息缓存服务器检查轮询等待时间是否超时,若未超时,所述分布式消息缓存服务器继续检查轮询等待时间是否超时;若超时,所述分布式消息缓存服务器于一预定时间后再次检查是否有满足要求的消息。
13.一种消息发送方法,其特征在于,所述方法包括如下步骤:
接收来自消息发送客户端的消息,解析所述消息所属的会话组群;
判断所述消息所属的会话组群规模,
如果所述会话组群为非大规模组群,消息服务器从成员列表服务器获取所述会话组群的成员信息,以及通过推送通道将所述消息推送至所述会话组群的成员信息对应的消息接收客户端;
如果所述会话组群为大规模组群,消息服务器继续通过推送通道将所述消息推送至所述会话组群的成员信息对应的消息接收客户端,所述会话组群的成员信息指示判定所述会话组群为大规模组群之前的加群成员;消息服务器将所述消息发送至分布式消息缓存服务器,以使得所述分布式消息缓存服务器接收来自判定所述会话组群为大规模组群之后的加群成员对应的消息接收客户端的拉消息请求,并通过消息推拉通道向发出请求的客户端发送所述请求对应的消息。
14.根据权利要求13所述的方法,其特征在于,所述从成员列表服务器获取所述会话组群的成员信息包括:
向所述成员列表服务器发送会话组群的成员查询请求;以使得所述成员列表服务器根据会话组群查询会话组群的成员信息,并返回所述会话组群的成员信息。
15.根据权利要求13所述的方法,其特征在于,所述判断所述消息所属的会话组群规模,包括:
读取会话组群规模标识,所述会话组群规模标识反映所述会话组群成员数量与预置阈值的大小关系;
根据所述会话组群规模标识判断所述会话组群是否为大规模组群。
16.根据权利要求15所述的方法,其特征在于,若所述会话组群成员数量大于所述预置阈值,所述会话组群规模标识反映会话组群为大规模组群;若所述会话组群成员数量小于所述预置阈值,所述会话组群规模标识反映会话组群为小规模组群。
17.根据权利要求13所述的方法,其特征在于,分布式消息缓存服务器接收来自判定所述会话组群为大规模组群之后的加群成员对应的消息接收客户端的拉消息请求,并通过消息推拉通道向发出请求的客户端发送所述请求对应的消息包括:
分布式消息缓存服务器接收来自判定所述会话组群为大规模组群之后的加群成员对应的消息接收客户端的拉消息请求;
分布式消息缓存服务器解析所述拉消息请求中的请求条件;
分布式消息缓存服务器通过所述请求条件查询是否有满足请求条件的消息;
若存在满足所述请求条件的消息,分布式消息缓存服务器通过消息推拉通道将所述满足请求条件的消息发送至发出请求的客户端。
18.根据权利要求17所述的方法,其特征在于,若不存在满足所述请求条件的消息,所述分布式消息缓存服务器检查轮询等待时间是否超时,若未超时,所述分布式消息缓存服务器继续检查轮询等待时间是否超时;若超时,所述分布式消息缓存服务器于一预定时间后再次检查是否有满足要求的消息。
19.一种消息发送装置,其特征在于,所述装置包括如下模块:
消息接收模块,用于接收来自消息发送客户端的消息,解析所述消息所属的会话组群;
判断与发送模块,用于判断所述消息所属的会话组群规模;
第一消息推送模块,用于如果所述会话组群为非大规模组群,从成员列表服务器获取所述会话组群的成员信息,以及通过推送通道将所述消息推送至所述会话组群的成员信息对应的消息接收客户端;
第二消息推送模块,用于如果所述会话组群为大规模组群,消息服务器继续通过推送通道将所述消息推送至所述会话组群的成员信息对应的消息接收客户端,所述会话组群的成员信息指示判定所述会话组群为大规模组群之前的加群成员;消息服务器将所述消息发送至分布式消息缓存服务器,以使得所述分布式消息缓存服务器接收来自判定所述会话组群为大规模组群之后的加群成员对应的消息接收客户端的拉消息请求,并通过消息推拉通道向发出请求的客户端发送所述请求对应的消息。
20.根据权利要求19所述的装置,其特征在于,所述消息接收模块包括:
查询子模块,用于向所述成员列表服务器发送会话组群的成员查询请求;以使得所述成员列表服务器根据会话组群查询会话组群的成员信息,并返回所述会话组群的成员信息。
21.根据权利要求19所述的装置,其特征在于,所述判断与发送模块包括:
会话组群规模标识读取子模块,用于读取会话组群规模标识,所述会话组群规模标识反映所述会话组群成员数量与预置阈值的大小关系;
判断子模块,用于根据所述会话组群规模标识判断所述会话组群是否为大规模组群。
22.根据权利要求21所述的装置,其特征在于,若所述会话组群成员数量大于所述预置阈值,所述会话组群规模标识反映会话组群为大规模组群;若所述会话组群成员数量小于所述预置阈值,所述会话组群规模标识反映会话组群为非大规模组群。
23.一种服务器,其特征在于,包含权利要求19-22之一所述的装置。
24.一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如权利要求1-6任一所述的消息发送方法或者如权利要求13-18任一所述的消息发送方法。
25.一种计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1-6任一所述的消息发送方法或者如权利要求13-18任一所述的消息发送方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611179889.XA CN108206742B (zh) | 2016-12-19 | 2016-12-19 | 一种消息发送方法、装置、服务器以及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611179889.XA CN108206742B (zh) | 2016-12-19 | 2016-12-19 | 一种消息发送方法、装置、服务器以及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108206742A CN108206742A (zh) | 2018-06-26 |
CN108206742B true CN108206742B (zh) | 2021-03-16 |
Family
ID=62603063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611179889.XA Active CN108206742B (zh) | 2016-12-19 | 2016-12-19 | 一种消息发送方法、装置、服务器以及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108206742B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110798495B (zh) * | 2018-08-03 | 2023-05-30 | 北京京东尚科信息技术有限公司 | 用于在集群架构模式下端到端的消息推送的方法和服务器 |
CN111431952B (zh) * | 2019-01-09 | 2022-06-03 | 阿里巴巴集团控股有限公司 | 消息推送方法、装置及系统,计算机存储介质和电子设备 |
CN112532673B (zh) * | 2019-09-19 | 2023-12-05 | 北京京东振世信息技术有限公司 | 消息发送方法及装置、计算机可读存储介质、电子设备 |
CN111177363B (zh) * | 2019-12-30 | 2023-07-11 | 广州市百果园网络科技有限公司 | 一种群组消息的写入方法、装置、服务器和存储介质 |
CN114598894A (zh) * | 2020-12-03 | 2022-06-07 | 北京字节跳动网络技术有限公司 | 交互消息处理方法、装置、设备和介质 |
CN114827064B (zh) * | 2022-04-18 | 2023-08-04 | 京东科技信息技术有限公司 | 消息推送方法、装置、电子设备和可读介质 |
CN117176793A (zh) * | 2023-08-31 | 2023-12-05 | 广州市玄武无线科技股份有限公司 | 一种上行消息自动转发方法、系统、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8082307B2 (en) * | 2006-08-04 | 2011-12-20 | International Business Machines Corporation | Redistributing messages in a clustered messaging environment |
CN103440241A (zh) * | 2013-06-24 | 2013-12-11 | 杭州朗和科技有限公司 | 动态信息发送的方法和设备、动态信息查询的方法和设备 |
CN105338084A (zh) * | 2015-11-02 | 2016-02-17 | 北京金山安全软件有限公司 | 一种广告信息推送的方法及服务器 |
CN105577777A (zh) * | 2015-12-18 | 2016-05-11 | 腾讯科技(深圳)有限公司 | 一种消息处理方法、装置及系统 |
-
2016
- 2016-12-19 CN CN201611179889.XA patent/CN108206742B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8082307B2 (en) * | 2006-08-04 | 2011-12-20 | International Business Machines Corporation | Redistributing messages in a clustered messaging environment |
CN103440241A (zh) * | 2013-06-24 | 2013-12-11 | 杭州朗和科技有限公司 | 动态信息发送的方法和设备、动态信息查询的方法和设备 |
CN105338084A (zh) * | 2015-11-02 | 2016-02-17 | 北京金山安全软件有限公司 | 一种广告信息推送的方法及服务器 |
CN105577777A (zh) * | 2015-12-18 | 2016-05-11 | 腾讯科技(深圳)有限公司 | 一种消息处理方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108206742A (zh) | 2018-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108206742B (zh) | 一种消息发送方法、装置、服务器以及系统 | |
US10580092B2 (en) | Resource transfer system and method | |
CN107172477B (zh) | 投票方法及装置 | |
JP6511541B2 (ja) | メッセージ更新方法、装置、および端末 | |
CN105025043B (zh) | 信息分享方法、装置及系统 | |
CN106789562B (zh) | 一种虚拟物品发送方法、接收方法、装置和系统 | |
US10304461B2 (en) | Remote electronic service requesting and processing method, server, and terminal | |
JP6557741B2 (ja) | ピクチャ結合方法、端末、及びピクチャ結合システム | |
CN106973330B (zh) | 一种屏幕直播方法、装置和系统 | |
CN106713323B (zh) | 一种页面内容预览方法、客户端、服务器和系统 | |
CN107634962B (zh) | 网络带宽的管理方法及相关产品 | |
CN104954233B (zh) | 信息推送方法、装置和系统 | |
JP2018500644A (ja) | 表情イメージのマッチングを行うための方法、装置、および端末 | |
CN108011905A (zh) | 虚拟物品包发送方法、接收方法、装置及系统 | |
CN104518945B (zh) | 一种发送、接收社交网络信息的方法、装置和系统 | |
CN109146446B (zh) | 一种虚拟物品发放方法、装置及系统 | |
JP2018506792A (ja) | チャット履歴記録を表示するための方法およびチャット履歴記録を表示するための装置 | |
CN110191193A (zh) | 一种终端消息同步方法、装置和移动终端 | |
WO2018196560A1 (zh) | 信息发送方法、信息显示方法、终端、服务器、系统及存储介质 | |
CN106100974B (zh) | 信息分享方法及装置 | |
CN105376761B (zh) | 建立通话连接的方法、装置和通话系统 | |
CN106034065B (zh) | 信息展示方法及装置 | |
CN113329100B (zh) | 消息推送方法、装置及系统 | |
CN105681723B (zh) | 音视频通话方法及装置 | |
CN106850413B (zh) | 一种即时通讯信息的处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |