[0046] 为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0047] 如图2所示,是本发明第一实施例结构图,提供了一种网关,具体包括,[0048] 群组信息处理模块,用于将群组成员信息及群组设置进行加载;在用户发起群组会话时,将各个成员的会话内容转化后发送至协议转换模块。
[0049] 至少一个协议转换模块,用于接收成员发送的会话内容后,将所述会话内容转换为对应社区支持的格式后显示。
[0050] 所述群组信息处理模块,还用于接收客户端发送的群组会话初始化命令消息,进行初始化,在初始化成功后通知客户端初始化成功。
[0051] 所述群组信息处理模块,用于将各个成员的会话内容转换后发送至协议转换模块具体为,
[0052] 所述群组信息处理模块用于收到会话消息后,检查会话消息的目的地址并进行解析,将群组消息变成点对点消息,根据用户在各个社区的ID修改发送者字段,将所述点对点消息发送给协议转换模块;或
[0053] 所述群组信息处理模块,用于收到会话消息后,会话消息的目的地址为会话地址ID,根据已经记载的群组成员信息确认消息接收方,将所述会话消息转发至协议转换模块。
[0054] 该网关可以部署在一个单独的物理设备上,也可以作为用户终端软件中的一个模块而存在。协议转换模块作为实现社区互通的必要装置,可以借用已有的实现模式。本发明虽然重点描述的是互联网即时消息,但是由于协议转换模块的存在,互联网即时消息和普通的SMS短消息是可以实现互通的,因此本发明同样适用于SMS消息。本发明不要求对已有的IM社区联系人和通信协议进行任何改动,群组信息处理功能是在这些社区之外完成的。
[0055] 本发明第二实施例提供了一种跨社区群组信息处理系统,包括上述网关,还包括,[0056] 群组创建模块,用于用户建立虚拟群组,并通过客户端菜单发起群组会话,以及客户端向网关发送群组会话初始化命令消息以及群组成员信息。
[0057] 各个社区的联系人都是指和用户相关的联系人,也就是用户在对应社区上的“朋友”。这些联系人之间彼此可能认识,也可能并不认识。由于群组成员来自于不同的社区,在非聊天状态他们只能看到用户,看不到群组中的其他成员,只有用户能够看到所有成员,所以本发明称这种群组为“虚拟群组”,只对创建该群组的人有效,对其他人来说是临时性的关系。用户是该群组的拥有者,也是管理员。
[0058] 虚拟群组是用户在自己的通讯录中创建的一个群组,群组成员可以来自于不同的社区,由用户自行设置。所述社区包括但不限于即时消息、社交网络、微博等互联网社区,还可以包括传统的电信社区(提供传统的电话、短消息、彩信等沟通手段)。虚拟群组由用户创建,仅对用户可见,群组内其他成员并不知道。用户是该群组的管理员,随时可以进行删除群组、群组改名、添加成员、删除成员等操作。虚拟群组可以存储在用户的本地设备的通讯录上,也可以存在于网络服务器的通讯录上,具有持久性。虚拟群组反映的是现实生活中的社交圈子,圈子内的成员具有各式各样的联系方式。每个社区代表的是一种联系方式,该联系人可以是现实生活中的朋友,也可以是互联网空间中的朋友。
[0059] 如图3所示,是本发明第三实施例流程图,提供了一种跨社区群组信息处理方法,具体包括,
[0060] 步骤S301,用户建立虚拟群组,并通过客户端菜单发起群组会话;
[0061] 用户建立虚拟群组具体为,用户登录到网关,网关作为用户的代理,登录到各个社区;各联系人均正常登录各自的社区,即用户和各社区的联系人可以进行点对点的沟通;用户设置虚拟群组,并向群组中添加了一些社区的联系人作为成员。
[0062] 步骤S302,客户端向网关发送群组会话初始化命令消息,并将群组成员的信息发送到网关;
[0063] 成员信息包括但不限于成员所属社区、账号ID、用户设置的隐私权限等。
[0064] 步骤S303,网关收到客户端发送的初始化消息后,进行初始化,将群组成员的信息及群组设置加载到内存中;
[0065] 步骤S304,网关完成初始化后,通知用户客户端初始化成功;
[0066] 步骤S305,用户发送消息A,用户客户端将消息A发送给网关;
[0067] 步骤S306,网关收到消息后进行转换;
[0068] 具体地,网关收到消息A后,检查消息的目的地址并进行消息转发;由于这是群组会话,因此网关收到的报文目的地址将是多个接收方,网关将这些地址逐一分解,将群组消息变成若干点对点消息;同时,需要修改发送者字段,因为用户在各个社区的ID并不相同。
[0069] 另外一种可选的实现方式是用户客户端发出的消息A,其目的地址为会话地址ID,代表群组会话。因为群组成员信息已经上载到网关,所以网关已经知道消息接收方是那些成员;会话地址ID可以由步骤S304实现,即发送网关初始化完成时,将会话地址ID发送给用户客户端。
[0070] 步骤S307,网关将消息A单独发送给联系人甲,将消息A单独发送给联系人乙;
[0071] 由于是用户发往各个联系人的消息,因此网关修改消息的源地址和目的地址字段,而不修改消息内容;用户发出的是消息A,网关发出去的仍旧是消息A。
[0072] 步骤S308,如果社区A的联系人甲发送了回应消息B,网关将收到该消息;
[0073] 步骤S309,网关对收到的消息B进行处理,消息B本来是联系人甲发送给用户的点对点消息,网关需要将该消息转变成多个点对点消息;
[0074] 步骤S310,网关将消息B转发给用户,将消息B修改后发送给联系人乙;
[0075] 步骤S311,聊天的中间消息交互过程重复S305到S310的步骤,重复次数不限;聊天结束时,用户主动关闭群组会话,用户客户端发出群组会话的结束命令消息;
[0076] 步骤S312,网关收到关闭群组会话的消息时,执行清理操作,清理完毕后,网关向用户客户端发送群组会话已关闭的确认消息,群组会话结束。
[0077] 具体地,执行清理操作比如关闭网络连接句柄、释放内存等。
[0078] 如图4和图5所示,图4是用户发送消息及对端的呈现示意图,图5是联系人发送消息及对端的呈现示意图,具体如下。
[0079] 假定用户同时拥有社区A、社区B、社区C的账号,并且分别和联系人甲、联系人乙、联系人丙建立了朋友关系。由于社区A、社区B、社区C没有直接互联互通,联系人甲、联系人乙、联系人丙之间不能直接建立朋友关系。用户现在创建了“羽毛球兴趣组”的虚拟群组,加入了联系人甲、联系人乙、联系人丙作为群组成员。虚拟群组聊天过程中,用户发出一条消息,参见附图4,报文如下:
[0080]
[0081] 由于这是从用户发出的群发消息,而实际各个社区的通道是点对点的,所以,群组聊天处理模块修改接收者字段信息和发送者字段信息,以避免被对方社区判断为垃圾消息予以屏蔽。协议转化模块对所述群发信息进行转换后发送给联系人甲的消息报文如下(其余类似):
[0082]
[0083] 在界面上,各个接收方可以将消息显示为“用户:明天下午羽毛球比赛”,表示这句消息是用户发的。由于用户在各个社区的ID和昵称设置可能并不相同,所以在各个联系人客户端的界面上显示的联系人昵称可能不同,这里举例时忽略该差别。
[0084] 如附图5所示,联系人甲回复:几点开始?点对点消息报文如下:
[0085]
[0086] 群组聊天处理模块转发用户的消息报文如下:
[0087]
[0088] 群组聊天处理模块发给联系人丙的消息,出于兼容性和隐私性考虑,修改消息源和目的地,以及Body部分,形成点对点消息报文,通过协议转换模块发送,分别如下:
[0089]
[0090]
[0091] 如果点对点消息通道对消息报文的源地址和目的地址不做检查,且用户允许显示各社区好友的昵称,则修改源地址和目的地址后的报文示例如下:
[0092]
[0093]
[0094] 上述说明示出并描述了本发明的一个优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。