即时群体通信方法、会话管理服务器及客户端的制作方法
【专利摘要】本申请提供了一种即时群体通信方法、会话管理服务器及客户端,主要内容为:客户端在接收到即时通信消息后,向同一群中能进行直接通信的客户端发送所述即时通信消息,该群中其他客户端均执行相同的向同一群中能进行直接通信的客户端发送所述即时通信消息的操作,使得该群中除所有客户端均能接收到所述即时通信消息,进而将会话管理服务器监听并转发即时通信消息的职能成功的转移至群中各客户端上,每一客户端均承担部分监听及转发即时通信消息职能,这样会话管理服务器不需要再进行即时通信消息的监听和转发操作,很大程度上减少了会话管理服务器需要处理的数据量。
【专利说明】即时群体通信方法、会话管理服务器及客户端
【技术领域】
[0001]本申请涉及网络通信领域,尤其涉及一种即时群体通信方法、会话管理服务器及客户端。
【背景技术】
[0002]即时群体通信是指多个客户端以互联网为媒介,以即时通信方式互相传输或共享文本消息、多媒体消息的通信方式。
[0003]即时群体通信是通过如图1所示的客户端/服务器架构实现的,在这种架构中,会话管理服务器(Content Management System, CMS)分别与每个客户端建立连接,完成即时通信中对客户端的登陆鉴权、接收来自客户端的信息以及将该信息转发给其他客户端等职能,实现某一客户端与其所在群中的其他客户端之间的即时群体通信。
[0004]以图1所示的架构为例,假设客户端A至客户端E是属于同一群中的客户端,客户端A向群中的其他客户端发送即时通信消息的过程如下:
[0005]第一步:客户端A向会话管理服务器发送即时通信消息,其中携带客户端A所在群的群标识及客户端A的标识。
[0006]第二步:会话管理服务器根据接收到的群标识,确定对应的群中包含的各客户端。
[0007]第三步:会话管理服务器根据发起即时通信消息的客户端A的标识,从确定的群内包含的各客户端中,确定需要接收该即时通信消息的客户端,即客户端B至客户端E。
[0008]在本步骤中,会话管理服务器将群中除客户端A外的其他客户端作为需要接收即时通信消息的客户端。
[0009]第四步:会话管理服务器将即时通信消息转发给客户端B至客户端E,实现了客户端A与同一群中的其他客户端之间的即时群体通信。
[0010]在上述即时群体通信方式中,会话管理服务器不仅需要与群中的客户端进行控制指令的传递(如登陆鉴权、群中是否有客户端离线或是有新的客户端登陆等),还需要对连接的客户端发送的即时通信消息进行监听,并将即时通信消息转发给群中的其他客户端,由于会话管理服务器需要与客户端之间实时进行控制指令以及即时通信消息的收发,会话管理服务器需处理的数据量大,特别是在即时群体通信业务的高峰时段,会话管理服务器实际需处理的数据量是非常庞大的,这将会导致会话管理服务器的性能受到较大影响,甚至可能在即时群体通信业务的高峰时段无法满足业务需求,只能通过增大会话管理服务器群的规模来满足业务需求。
【发明内容】
[0011]本申请实施例的目的在于,提供一种即时群体通信方法、会话管理服务器、及客户端,以解决现有技术中会话管理服务器的数据处理量过大的问题。
[0012]一种即时群体通信方法,所述方法包括:
[0013]会话管理服务器确定群中参与会话的客户端的CID ;[0014]会话管理服务器根据所述CID生成网络连接配置图1CG,所述ICG中记录了所述客户端之间的连接关系,且根据所述连接关系,群中的任一客户端均能与群中除自身外的其他客户端进行直接或间接的通信;
[0015]会话管理服务器根据所述ICG为任一客户端分别生成本地网络连接配置图LICG,并将所述LICG下发给相应的客户端,指示该客户端根据下发的LICG与群中其他客户端进行即时群体通信,所述LICG中记录了能与所述相应的客户端直接进行通信的其他客户端的 CID。
[0016]一种即时群体通信方法,所述方法包括:
[0017]客户端接收即时通信消息;
[0018]客户端根据本地存储的本地网络连接配置图LICG确定能与自身进行通信的其他客户端,并将所述即时通信消息发送至确定的其他客户端;
[0019]所述LICG是会话管理服务器根据网络连接配置图1CG生成并下发的,其中记录了能与客户端直接进行通信的其他客户端的标识号CID,所述ICG中记录了客户端所在的群中参与会话的所有客户端之间的连接关系,且根据所述连接关系,群中的任一客户端均能与群中除自身外的其他客户端进行直接或间接的通信。
[0020]一种会话管理服务器,所述会话管理服务器包括:
[0021]确定模块,用于确定群中参与会话的客户端的CID ;
[0022]网络连接配置图1CG生成模块,用于根据所述CID生成ICG,所述ICG中记录了所述客户端之间的连接关系,且根据所述连接关系,群中的任一客户端均能与群中除自身外的其他客户端进行直接或间接的通信;
[0023]本地网络连接配置图LICG生成模块,用于根据所述ICG为任一客户端分别生成本地网络连接配置图LICG ;
[0024]发送模块,用于将所述LICG下发给相应的参与会话的客户端,,指示该客户端根据下发的LICG与群中其他客户端进行即时群体通信,所述LICG中记录了能与所述相应的客户端直接进行通信的其他客户端的CID。
[0025]一种客户端,所述客户端包括:
[0026]接收模块,用于接收即时通信消息;
[0027]确定模块,用于根据本地存储的本地网络连接配置图LICG确定能与自身进行通信的其他客户端,所述LICG是会话管理服务器根据网络连接配置图1CG生成并下发的,其中记录了能与客户端直接进行通信的其他客户端的CID,所述ICG中记录了客户端所在的群中参与会话的所有客户端之间的连接关系,且根据所述连接关系,群中的任一客户端均能与群中除自身外的其他客户端进行直接或间接的通信;
[0028]发送模块,用于将所述即时通信消息发送至确定的其他客户端。
[0029]在本申请实施例的方案中,客户端在接收到即时通信消息后,向同一群中能进行直接通信的客户端发送所述即时通信消息,该群中其他客户端均执行相同的向同一群中能进行直接通信的客户端发送所述即时通信消息的操作,使得该群中除所有客户端均能接收到所述即时通信消息,进而将会话管理服务器监听并转发即时通信消息的职能成功的转移至群中各客户端上,每一客户端均承担部分监听及转发即时通信消息职能,这样会话管理服务器不需要再进行即时通信消息的监听和转发操作,大幅减少了会话管理服务器需要处理的数据量。
【专利附图】
【附图说明】
[0030]图1为【背景技术】中即时群体通信系统架构示意图;
[0031]图2为本申请实施例一中即时群体通信方法示意图;
[0032]图3为本申请实施例一中会话管理服务器生成的网络连接配置图示意图;
[0033]图4为本申请实施例一中会话管理服务器利用二叉树算法生成的网络连接配置图不意图;
[0034]图5 (a)-图5 (I)为本申请实施例一中会话管理服务器为群中各客户端配置的本地网络连接配置图示意图;
[0035]图6为本申请实施例一会话管理服务器重新生成的本地网络连接配置图示意图;
[0036]图7为本申请实施例二中即时群体通信方法示意图;
[0037]图8为本申请实施例三中的即时群体通信方法示意图;
[0038]图9为本申请实施例三中会话管理服务器为5个客户端生成的网络连接配置图示意图;
[0039]图10 Ca)-图10 (e)为本申请实施例三中会话管理服务器为5个客户端配置的本地网络连接配置图示意图;
[0040]图11为本申请实施例四中即时群体通信系统示意图;
[0041]图12为本申请实施例五中会话管理服务器的结构示意图;
[0042]图13为本申请实施例六中客户端的结构示意图。
【具体实施方式】
[0043]为实现本申请的目的,本申请实施例提出了一种即时群体通信方案,客户端在接收到即时通信消息后,向同一群中能进行直接通信的客户端发送所述即时通信消息,该群中其他客户端均执行相同的向同一群中能进行直接通信的客户端发送所述即时通信消息的操作,使得该群中除所有客户端均能接收到所述即时通信消息,进而将会话管理服务器监听并转发即时通信消息的职能成功的转移至群中各客户端上,每一客户端均承担部分监听及转发即时通信消息职能,使得会话管理服务器不用再进行即时通信消息的监听和转发操作,减少了会话管理服务器需要处理的数据量,有效减轻了会话管理服务器数据处理负担,避免了因处理的数据量大而导致的性能无法满足业务需求的问题。
[0044]对大量即时群体通信的统计证明,单个成员在群体会话中活动的时间分布是比较稀疏的;群中的大多数群体成员在群体会话的大多数时段处于只接收即时通信消息而不产生即时通信消息的状态;对于以网络聊天为主要形式的即时群体会话,平均的群体成员个数在50-200之间,成员对他人即时消息即时到达的时效性要求并不高,对他人发送的即时消息的反应和应答时间,相对于网络时延而言,存在着数量级的差别。
[0045]本申请实施例的方案正是利用即时群体通信的上述特征,通过参与群体会话的客户端之间相互转发消息的方式,来实现群体间的通信。尽管这种通信方式会产生网络时延,但因群中的成员对他人发送的即时通信消息的时效性要求不高,故不会对即时群体通信产生较大影响。也就是说,本申请中的通过客户端转发即时通信消息来实现即时群体通信的方式是满足即时群体通信的对接收及发送即时通信消息的时效性的要求的。
[0046]需要说明的是,在本申请中,在描述计算机本地操作时,客户端是指运行再本地计算机上,控制计算机硬件以协议约定的方式与会话管理服务器通信的软件,在描述与服务器的关系时,客户端也是运行相应软件的计算机物理实体。
[0047]下面结合具体实施例详细描述本申请的方案。
[0048]实施例一
[0049]如图2所示,其为本申请实施例一中即时群体通信方法示意图,所述方法包括:
[0050]步骤201:会话管理服务器确定群中参与会话的客户端的标识号(ClientIDentity, CID)。
[0051]会话管理器可对其服务的每个群分配一个唯一的群标识号(ID),并针对每一个群,确定该群中参与会话的客户端的CID,所述CID记录了能唯一标识该客户端的信息,如编号及客户端的IP地址等信息。
[0052]所述客户端的CID是该客户端登录时,向会话管理服务器发送的。
[0053]步骤202:会话管理服务器根据所述CID生成网络连接配置图(InternetConfiguration Graph, ICG),所述ICG中记录了所述客户端之间的连接关系,且根据所述连接关系,群中的任一客户端均能与群中除自身外的其他客户端进行直接或间接的通信。
[0054]假设会话管理服务器确定群中参与会话的12个客户端的CID分别为A、B、C、D、E、F、G、H、1、J、K、L,则生成的ICG可以为如图3所示,可见图3中的连接关系保证了群中的任一客户端均能与群中除自身外的其他客户端进行直接或间接的通信。
[0055]其中,生成ICG可以根据需求的不同而采用不同的生成方式,例如根据客户端的数量、各客户端的所处的网络状况、以及设置的连接数量等生成,本申请中不限定具体的生成方式,满足群中的任一客户端根据生成的ICG中的连接关系均能与群中除自身外的其他客户端进行直接或间接的通信即可。例如,可以利用数据结构技术中生成二叉树的算法来生成ICG,以上述12个客户端为例,则生成的二叉树可以为如图4所示。
[0056]较优的,会话管理服务器可以根据客户端在登录时向其上报的IP地址,根据本地存储的IP地理信息库,确定使用该IP地址的客户端的地理位置,并依据确定的IP地理位置生成ICG,使得群中的客户端能够依据该ICG能与群中除自身外的其他客户端进行直接或间接的通信所使用的耗时较短。
[0057]步骤203:会话管理服务器根据所述ICG为任一客户端分别生成本地网络连接配置图LICG,并将所述LICG下发给相应的客户端。
[0058]仍以上图4中的ICG为例,在本步骤203中,会话管理服务器为12个客户端分别生成的LICG可以如图5 (a)-图5 (I)所示。
[0059]步骤204:会话管理服务器指示该客户端根据下发的LICG与群中其他客户端进行即时群体通信,所述LICG中记录了能与所述相应的客户端直接进行通信的其他客户端的CID。
[0060]在本申请实施例一的方案中,由于会话管理服务器为群中的客户端下发了 LICG,群中的客户端均能根据会话管理服务器为自身下发的LICG与其他客户端进行通信,进而使得群中任一客户端均能直接或间接的接收到该群中的客户端产生的任一即时通信消息,也即本实施例一的方法既实现了即时群体通信,同时又减少了会话管理服务器的对即时通信消息进行监听及转发所带来的资源消耗。
[0061]考虑到在进行即时群体通信时,客户端之间的即时通信消息的传递过程可能因网络状况不佳而导致即时通信消息在传递过程中丢失,没有发送到相应的客户端,或者由于有客户端退出群体会话,该退出会话的客户端就不能进行消息的接收及转发操作,就可能会导致即时通信消息不能被发送到群中的某些客户端,故,较优的,会话管理服务器接收客户端上报的发送失败报告,所述发送失败报告是该客户端在向其他客户端发送即时通信消息失败时产生的,包含消息接收方的CID。
[0062]会话管理服务器在接收到针对同一 CID的发送失败报告的数量达到阈值时,对该CID对应的客户端进行处理。
[0063]所述对CID对应的客户端进行处理,可以为直接确定该客户端退出了群体会话,并重新生成ICG,以及根据重新生成的ICG重新为群中参与会话的各客户端生成LICG。
[0064]较优的,会话管理服务器对该CID对应的客户端进行处理,具体包括:
[0065]会话管理服务器对该CID对应的客户端发送测试指令,并在可容忍的时延内没有接收到该客户端返回的应答指令时,确定该客户端当前未参与群中的会话,并重新生成ICG,以及根据重新生成的ICG重新为群中参与会话的各客户端生成LICG。
[0066]较优的,会话管理服务器为群中的客户端重新分配LICG后,可以比较之前客户端旧的LICG与重新分配的LICG是否相同,对于LICG不同的客户端,会话管理服务器将重新分配的LICG发送给客户端,要求客户端更新LICG ;对于LICG相同的客户端,会话管理服务器可不要求客户端进行LICG的更新。
[0067]考虑到当有新客户端加入群或群中原有的客户端开始参与会话时,由于原有的ICG中并未记录所述新客户端加入群或群中原有的客户端与该群中其他参与会话的客户端之间的连接关系,无法依据原有的ICG为其分配LICG,也就导致不能与其所在的群中的其他客户端进行即时通信,故较优的,当有新客户端加入群或群中原有的客户端开始参与会话时,会话管理服务器将所述新客户端或所述群中原有的客户端作为群中参与会话的客户端,并重新生成ICG,以及根据新生成的ICG重新为群中参与会话的各客户端配置LICG。
[0068]在上图4的基础上,若有新的客户端M开始参与会话,此时会话管理服务器重新生成的ICG可以为图6所示。
[0069]实施例二
[0070]如图7所示,其为本申请实施例二中即时群体通信方法,所述方法包括:
[0071]步骤301:客户端接收即时通信消息。
[0072]所述即时通信消息可以是用户输入该客户端的,也可以是其他客户端发送给所述客户端的。
[0073]较优的,所述即时通信消息中携带了根据创建该消息时生成的本地消息标识号(Local Message Identity, LMID)与创建该消息的客户端的CID生成的全局消息标识号(Global Message Identity, GMID)。
[0074]步骤302:客户端根据会话协议判断当前接收到的即时通信消息是否是已经接收过的即时通信消息,若是,则执行步骤303 ;若否,则执行步骤304。
[0075]在本步骤302中,客户端可以通过将当前接收到的即时通信消息与本地存储的已接收的即时通信消息进行比较,根据比较结果判断当前接收到的即时通信消息是否是已经接收过的即时通信消息。
[0076]较优的,客户端可通过即时通信消息中携带的GMID,判断本地维护的入栈消息队列(Incoming Message Queue, IMQ)中是否已存在所述GMID的方式来判断本地是否已接收过该即时通信消息,所述MQ中记录了已接收到的即时通信消息的GMID以及该即时通信消息的来源客户端的CID。
[0077]步骤303:客户端不再将当前接收到的即时通信消息发送至其他客户端,丢弃所述即时通信消息,结束本次即时群体通信过程。
[0078]需要说明的是,步骤302和步骤303是本实施例二的优选方案,目的是为了尽可能的减少客户端重复接收到某一即时通信消息的次数。
[0079]步骤304:客户端存储所述即时通信消息。
[0080]在上述步骤302中,当判断结果为已接收过该即时通信消息时,并不局限于丢弃所述即时通信消息这一种处理措施,也可以采取判断是否已转发过该即时通信消息,若没有转发过,则执行步骤304,若已经转发过,则不再转发该即时通信消息,可避免同一条即时通信消息在群中的客户端之间被无休止的转发。
[0081]为了保证客户端发出的即时通信消息能够到达群中的所有客户端,会话管理服务器为各客户端分配的LICG总和往往是冗余的,就会导致出现客户端重复接收到同一即时通信消息的情况,在步骤302中,可以对接收到的即时通信消息是否重复接收以及是否重复转发的判断,并采取相应措施,进而避免了重复接收、转发同一即时通信消息的情况。
[0082]本步骤304存储所述即时通信消息的操作是优选操作,本申请实施例的方案中也可以不存储所述即时通信消息,而只存储所述即时通信消息的GMID以及该即时通信消息发送方的CID,并将这些信息放置在本地维护的IMQ队列中。
[0083]需要说明的是,步骤304是本实施例二的优选方案,目的是为了利用已存储的即时通信消息的GMID以及发送该即时通信消息的CID,在下次执行步骤302时用以判断每次接收到的即时通信消息是否是重复接收的即时通信消息,避免重复接收、转发即时通信消
肩、O
[0084]步骤305:客户端读取所述即时通信消息的内容,将其在本地的输出界面显示。
[0085]步骤306:客户端根据本地存储的本地网络连接配置图LICG确定能与自身进行通信的其他客户端。
[0086]所述LICG是会话管理服务器根据网络连接配置图1CG生成并下发的,其中记录了能与客户端直接进行通信的其他客户端的CID,所述ICG中记录了客户端所在的群中参与会话的所有客户端之间的连接关系,且根据所述连接关系,群中的任一客户端均能与群中除自身外的其他客户端进行直接或间接的通信。
[0087]步骤307:客户端将所述即时通信消息发送至确定的其他客户端。
[0088]较优的,在本步骤307中,客户端将自身的CID携带在所述即时通信消息中,并将携带了自身CID的即时通信消息发送出去,以便于该群中其他接收到所述即时通信消息的客户端可以根据所述即时通信消息中携带的CID,确定该CID对应的客户端已经接收到了所述即时通信消息,不再将所述即时通信消息转发给该CID对应的客户端。
[0089]步骤308:客户端根据会话协议判断是否成功发送所述即时通信消息,若否,则执行步骤309,若是,则结束本次即时通信过程。[0090]较优的,在本步骤308中,在客户端根据会话协议判断是成功发送所述即时通信消息,将所述即时通信消息的GMID以及成功接收该即时通信消息的CID保存在本地维护的出栈消息队列(Outgoing Message Queue7OMQ)队列中,表示该客户端已完成对当前生成的即时通信消息的发送过程。
[0091]步骤309:客户端向会话管理服务器上报发送失败报告,所述发送失败报告中包含消息接收方的CID。
[0092]考虑到当群中有新的客户端加入、群中的原有客户端开始参与会话或原来参与会话的客户端退出会话,会话管理服务器会重新生成ICG,并根据所述ICG重新下发LICG,为确保客户端根据LICG能成功的与该LICG中的其他客户端进行即时群体通信,较优的,客户端在接收到会话管理服务器下发的LICG时,根据接收到的LICG中记录的CID,与该CID对应的客户端之间进行连接测试。
[0093]较优的,客户端接收到会话管理服务器重新配置的LICG,将其与本地存储的LICG进行比较,确定出应当建立连接的客户端,并尝试与之建立连接。
[0094]上述确定出的应当建立连接的客户端是重新配置的LICG中记录了但本地存储的LICG中没有的CID号对应的客户端。仅当该客户端与所有应当建立连接的客户端均连接成功时,该客户端才断开与本地存储的LICG中有而重新配置的LICG中没有的CID对应的客户端的连接。若上述建立连接的过程中,发生连接失败,则该客户端向会话管理服务器发送连接失败报告。
[0095]较优的,由于新的客户端对其接收到的LICG中的CID对应的客户端之间进行了连接测试,因此,所述群中原各客户端的LICG中包含所述新客户端的CID的客户端,无需与所述新客户端进行连接测试。
[0096]所述新客户端与LICG中记录的CID对应的客户端之间进行连接测试,具体包括:
[0097]第一步,新客户端判断是否能与LICG中记录的CID中的N个标识对应的客户端之间建立连接,若是,则执行第二步;若否,则执行第三步。
[0098]在上述第一步中,会话管理服务器向新客户端发送的LICG中记录的CID是冗余的,也就是说所述LICG中记录的CID的数量大于会话管理服务器确定的该新客户端与其他客户端进行通信的必要连接数目N。因为会话管理服务器不能保证给所述新客户端发送的LICG中的CID对应的客户端均能与所述新客户端成功建立连接。
[0099]第二步,新客户端将LICG中除所述N个标识外的其他CID删除。
[0100]在上述第二步中,客户端在尝试与LICG中的CID对应的客户端建立连接的过程中,会对已经连接成功的客户端进行记录,当能够成功建立连接的客户端的数量达到会话管理服务器确定的该新客户端与其他客户端进行通信的必要连接数目N时,可不再尝试连接LICG中其他的CID号对应的客户端。
[0101]第三步,新客户端向会话管理服务器发送请求消息,请求会话管理服务器重新为该新客户端分配LICG,并利用重新分配的LICG执行连接测试。
[0102]较优的,会话管理服务器为新客户端分配的LICG中记录的CID,是按照对应的客户端传输时延进行排列的。
[0103]新客户端判断是否能与LICG中记录的CID中的N个标识对应的客户端之间建立连接,具体包括:[0104]新客户端按照传输时延由短至长的顺序,依次判断是否能与LICG中的N个标识对应的客户端之间建立连接。
[0105]所述新客户端在连接测试完成之后,将测试结果发送给会话管理服务器,会话管理服务器根据测试结果,更新该群的ICG,并发送确认消息至该客户端,确认该新客户端可以参与正常的会话。
[0106]实施例三
[0107]为详细说明本申请实施例二的方案,本实施例三以下以图8所示的同一群中的客户端以及各客户端之间的连接关系为例,说明客户端之间是如何进行即时通信的。
[0108]在图8所示的群中,各参与会话的客户端的标识号分别为A、B、C、D、E。各客户端之间连接关系是由会话管理服务器中的ICG决定的,可以为图9所示。
[0109]由图9所示的连接关系可知:
[0110]能与客户端A直接进行通信的客户端为客户端B和客户端C ;
[0111]能与客户端B直接进行通信的客户端为客户端A、客户端C和客户端D ;
[0112]能与客户端C直接进行通信的客户端为客户端A、客户端B、客户端D和客户端E ;
[0113]能与客户端D直接进行通信的客户端为客户端B、客户端C和客户端E ;
`[0114]能与客户端E直接进行通信的客户端为客户端C和客户端D。
[0115]会话管理服务器为上述各客户端下发的LICG也即为图10 (a)_图10 (e)所示。
[0116]假设创建即时通信消息的客户端为客户端A,则其确定的能够与该群中进行通信的客户端为客户端B和客户端C,并将所述即时通信消息发送给客户端B和客户端C。
[0117]客户端B将所述即时通信消息转发给客户端C和客户端D,客户端C将所述即时通信消息转发给客户端D、客户端E和客户端B。
[0118]此时,由于客户端C已接收过来自客户端A的即时通信消息,因此,不再接收来自客户端B的同一即时通信消息;客户端D会接收到来自客户端B和客户端C的同一即时通信消息,为了避免重复接收,客户端D可接收先到达的即时通信消息(如接收来自客户端B的即时通信消息),不再接收后到达的同一即时通信消息(如不再接收来自客户端C的即时通?目消息)。
[0119]当客户端D、客户端E接收到所述即时通信消息后,客户端D和客户端E进行即时通信消息的发送操作。
[0120]由于客户端D和客户端E之前没有执行过针对该即时通信消息的转发操作,因此,客户端D将所述即时通信消息发送给客户端C和客户端E (由于客户端D是从客户端B处获得的所述即时通信消息,因此客户端D不再向客户端B发送)。由于客户端C和客户端E已接收该即时通信消息,因此,不再转发该即时通信消息。
[0121]客户端E将所述即时通信消息向下游客户端发送的过程与客户端D类似。
[0122]至此,群中所有客户端都接收到了所述即时通信消息,实现了即时群体通信过程。
[0123]实施例四
[0124]如图11所示,为本申请实施例四的一种即时群体通信系统示意图,所述系统包括会话管理服务器11和至少两个参与会话的客户端12,其中:
[0125]会话管理服务器11,用于确定群中参与会话的客户端的CID,根据所述CID生成网络连接配置图1CG,以及根据所述ICG为任一客户端生成本地网络连接配置图LICG,并将所述LICG下发给相应的客户端,所述ICG中记录了所述客户端之间的连接关系,且根据所述连接关系,群中的任一客户端均能与群中除自身外的其他客户端进行直接或间接的通信,所述LICG中记录了能与相应的客户端直接进行通信的其他客户端的CID。
[0126]任一参与会话的客户端12,用于接收即时通信消息,以及根据本地存储的本地网络连接配置图LICG确定能与自身进行通信的其他客户端,并将所述即时通信消息发送至确定的其他客户端;
[0127]所述参与会话的客户端12,还用于在接收即时通信消息后,判断当前接收到的即时通信消息是否是已经接收过的即时通信消息,若是,则不再将当前接收到的即时通信消息发送至其他客户端,若否,则执行将当前接收到的即时通信消息发送至确定的其他客户端的操作。
[0128]较优的,所述参与会话的客户端12,还用于在没有成功发送即时通信消息时,向会话管理服务器上报发送失败报告,所述发送失败报告中包含消息接收方的CID ;
[0129]所述会话管理服务器11,还用于接收客户端上报的发送失败报告,并在接收到针对同一 CID的发送失败报告的数量达到阈值时,对该CID对应的客户端进行处理。
[0130]较优的,所述会话管理服务器11,具体用于在接收到针对同一 CID的发送失败报告的数量达到阈值时,对该CID对应的客户端发送测试指令,并在可容忍的时延内没有接收到该客户端返回的应答指令时,确定该客户端当前未参与群中的会话,并重新生成ICG,以及根据新生成的ICG重新为群中参与会话的各客户端配置LICG。
[0131]在图11中,会话管理服务器11与客户端之间消息的交互(也即指令传输)用虚线表示;客户端之间消息的交互(也即数据传输)用实线表示。
[0132]较优的,所述会话管理服务器11,还用于在有新客户端加入群或群中原有的客户端开始参与会话时,将所述新客户端或所述群中原有的客户端作为群中参与会话的客户端,并重新生成ICG,以及根据新生成的ICG重新为群中参与会话的各客户端配置LICG ;
[0133]较优的,所述新客户端,具体用于判断是否能与LICG中记录的CID中的N个标识对应的客户端之间建立连接;若是,则新客户端将LICG中除所述N个标识外的其他CID删除;若否,则新客户端向会话管理服务器发送请求消息,请求会话管理服务器重新为该新客户端分配LICG,并利用重新分配的LICG执行连接测试。
[0134]较优的,所述会话管理服务器11,具体用于为新客户端分配CID按照对应的客户端传输时延排列的LICG ;
[0135]所述新客户端,具体用于按照传输时延由短至长的顺序,依次判断是否能与LICG中的N个标识对应的客户端之间建立连接。
[0136]所述客户端,还用于在接收到会话管理服务器下发的LICG时,根据接收到的LICG中记录的CID,与该CID对应的客户端之间进行连接测试。
[0137]实施例五
[0138]如图12所示,为本申请实施例五的一种会话管理服务器的结构示意图,所述会话管理服务器包括:确定模块21、ICG生成模块22、LICG生成模块23和发送模块24。
[0139]确定模块21,用于确定群中参与会话的客户端的CID。
[0140]ICG生成模块22,用于根据所述CID生成ICG,所述ICG中记录了所述客户端之间的连接关系,且根据所述连接关系,群中的任一客户端均能与群中除自身外的其他客户端进行直接或间接的通信;
[0141]LICG生成模块23,用于根据所述ICG为任一客户端分别生成本地网络连接配置图LICG ;
[0142]发送模块24,用于将所述LICG下发给相应的参与会话的客户端,,指示该客户端根据下发的LICG与群中其他客户端进行即时群体通信,所述LICG中记录了能与所述相应的客户端直接进行通信的其他客户端的CID。
[0143]较优的,所述会话管理服务器还包括:
[0144]接收模块25,用于接收客户端上报的发送失败报告,所述发送失败报告是该客户端在向其他客户端发送即时通信消息失败时产生的,包含消息接收方的CID ;
[0145]处理模块26,用于在接收到针对同一 CID的发送失败报告的数量达到阈值时,对该CID对应的客户端进行处理。
[0146]较优的,所述处理模块26,具体用于在接收到针对同一 CID的发送失败报告的数量达到阈值时,对该CID对应的客户端发送测试指令,并在可容忍的时延内没有接收到该客户端返回的应答指令时,确定该客户端当前未参与群中的会话,并触发所述确定模块21。
[0147]较优的,所述确定模块21,具体用于当有新客户端加入群或群中原有的客户端开始参与会话时,将所述新客户端或所述群中原有的客户端作为群中参与会话的客户端,确定所述新客户端或所述群中原有的客户端的CID,并触发所述ICG生成模块。
[0148]实施例六
[0149]如图13所示,为本申请实施例六的一种客户端结构示意图,所述客户端包括:接收模块31、确定模块32和发送模块33。其中:
[0150]接收模块31,用于接收即时通信消息;
[0151]确定模块32,用于根据本地存储的本地网络连接配置图LICG确定能与自身进行通信的其他客户端,所述LICG是会话管理服务器根据网络连接配置图1CG生成并下发的,其中记录了能与客户端直接进行通信的其他客户端的CID,所述ICG中记录了客户端所在的群中参与会话的所有客户端之间的连接关系,且根据所述连接关系,群中的任一客户端均能与群中除自身外的其他客户端进行直接或间接的通信;
[0152]发送模块33,用于将所述即时通信消息发送至确定的其他客户端。
[0153]较优的,所述客户端还包括:
[0154]判断模块34,用于判断当前接收到的即时通信消息是否是已经接收过的即时通信消息,并在判断结果为否时,触发所述确定模块32。
[0155]较优的,所述判断模块34,还用于判断即时通信消息是否发送成功,在没有发送成功时,触发所述发送模块33;
[0156]所述发送模块33,还用于向会话管理服务器上报发送失败报告,所述发送失败报告中包含消息接收方的CID。
[0157]较优的,所述接收模块31,还用于接收会话管理服务器发送的LICG ;
[0158]所述客户端还包括:
[0159]测试模块35,用于根据所述LICG中记录的CID,与该CID对应的客户端之间进行连接测试。
[0160]较优的,所述测试模块35具体包括:[0161]判断单元42,用于判断是否能与LICG中记录的CID中的N个标识对应的客户端之间建立连接。
[0162]删除单元41,用于在判断单元42的判断结果为是时,将LICG中除所述N个标识外的其他CID删除。
[0163]请求单元43,用于在判断单元42的判断结果为否时,请求会话管理服务器重新为该新客户端分配LICG。
[0164]较优的,所述判断单元42,具体用于在接收模块接收的LICG中记录的CID是按照对应的客户端传输时延进行排列时,按照传输时延由短至长的顺序,依次判断是否能与LICG中的N个标识对应的客户端之间建立连接。
[0165]本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0166]本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0167]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0168]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0169]尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
[0170]显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
【权利要求】
1.一种即时群体通信方法,其特征在于,所述方法包括: 会话管理服务器确定群中参与会话的客户端的标识号CID ; 会话管理服务器根据所述CID生成网络连接配置图1CG,所述ICG中记录了所述客户端之间的连接关系,且根据所述连接关系,群中的任一客户端均能与群中除自身外的其他客户端进行直接或间接的通信; 会话管理服务器根据所述ICG为任一客户端分别生成本地网络连接配置图LICG,并将所述LICG下发给相应的客户端,指示该客户端根据下发的LICG与群中其他客户端进行即时群体通信,所述LICG中记录了能与所述相应的客户端直接进行通信的其他客户端的CID。
2.如权利要求1所述的方法,其特征在于,所述方法还包括: 会话管理服务器接收客户端上报的发送失败报告,所述发送失败报告是该客户端在向其他客户端发送即时通信消息失败时产生的,包含消息接收方的CID ; 会话管理服务器在接收到针对同一 CID的发送失败报告的数量达到阈值时,对该CID对应的客户端进行处理。
3.如权利要求2所述的方法,其特征在于,会话管理服务器对该CID对应的客户端进行处理,具体包括: 会话管理服务器对该CID对应的客户端发送测试指令,并在可容忍的时延内没有接收到该客户端返回的应答指令时,确定该客户端当前未参与群中的会话,并重新生成ICG,以及根据重新生成的ICG重新为群中参与会话的各客户端生成LICG。
4.如权利要求1所述 的方法,其特征在于,所述方法还包括: 当有新客户端加入群或群中原有的客户端开始参与会话时,会话管理服务器将所述新客户端或所述群中原有的客户端作为群中参与会话的客户端,并重新生成ICG,以及根据新生成的ICG重新为群中参与会话的各客户端配置LICG。
5.一种即时群体通信方法,其特征在于,所述方法包括: 客户端接收即时通信消息; 客户端根据本地存储的本地网络连接配置图LICG确定能与自身进行通信的其他客户端,并将所述即时通信消息发送至确定的其他客户端; 所述LICG是会话管理服务器根据网络连接配置图1CG生成并下发的,其中记录了能与客户端直接进行通信的其他客户端的标识号CID,所述ICG中记录了客户端所在的群中参与会话的所有客户端之间的连接关系,且根据所述连接关系,群中的任一客户端均能与群中除自身外的其他客户端进行直接或间接的通信。
6.如权利要求5所述的方法,其特征在于,在接收即时通信消息后,所述方法还包括: 客户端判断当前接收到的即时通信消息是否是已经接收过的即时通信消息; 若是,则不再将当前接收到的即时通信消息发送至其他客户端; 若否,执行将当前接收到的即时通信消息发送至确定的其他客户端的操作。
7.如权利要求5所述的方法,其特征在于,所述方法还包括: 客户端在没有成功发送即时通信消息时,向会话管理服务器上报发送失败报告,所述发送失败报告中包含消息接收方的CID。
8.如权利要求5所述的方法,其特征在于,所述方法还包括:客户端在接收到会话管理服务器下发的LICG时,根据接收到的LICG中记录的CID,与该CID对应的客户端之间进行连接测试。
9.一种会话管理服务器,其特征在于,所述会话管理服务器包括: 确定模块,用于确定群中参与会话的客户端的标识号CID ; 网络连接配置图1CG生成模块,用于根据所述CID生成ICG,所述ICG中记录了所述客户端之间的连接关系,且根据所述连接关系,群中的任一客户端均能与群中除自身外的其他客户端进行直接或间接的通信; 本地网络连接配置图LICG生成模块,用于根据所述ICG为任一客户端分别生成本地网络连接配置图LICG ; 发送模块,用于将所述LICG下发给相应的参与会话的客户端,指示该客户端根据下发的LICG与群中其他客户端进行即时群体通信,所述LICG中记录了能与所述相应的客户端直接进行通信的其他客户端的CID。
10.一种客户端,其特征在于,所述客户端包括: 接收模块,用于接收即时通信消息; 确定模块,用于根据本地存储的本地网络连接配置图LICG确定能与自身进行通信的其他客户端,所述LICG是会话管理服务器根据网络连接配置图1CG生成并下发的,其中记录了能与客户端直接进行 通信的其他客户端的标识号CID,所述ICG中记录了客户端所在的群中参与会话的所有客户端之间的连接关系,且根据所述连接关系,群中的任一客户端均能与群中除自身外的其他客户端进行直接或间接的通信; 发送模块,用于将所述即时通信消息发送至确定的其他客户端。
【文档编号】H04L12/58GK103428070SQ201210154063
【公开日】2013年12月4日 申请日期:2012年5月17日 优先权日:2012年5月17日
【发明者】李涛 申请人:阿里巴巴集团控股有限公司