一种创建多用户会话的系统和方法

文档序号:7916460阅读:258来源:国知局
专利名称:一种创建多用户会话的系统和方法
技术领域
本发明涉及创建多用户会话的技术,尤其涉及一种通过即时通信(IM)工 具主面板多选用户后以拖拽方式快速创建多用户会话的系统和方法。
背景技术
IM工具发展到今天,已经被大多数的用户所接受,随着用户使用IM工具 的时间的增长,用户的需要不只局限于釆用IM工具进行单对单沟通的方式, 而需要IM工具能够提供具有同一特征的社会群体所建立的多人沟通平台,这 样就出现了用户群和兴趣组等群/组的概念,那么用户釆用IM工具提供的多人 沟通平台,可以与隶属于当前群/组中的其他用户进行有效的、即时的沟通。另 外,由于用户通常拥有多种类型的群/组,例如高中同学群、同事群等。因此, 为了更好地满足用户需要,使用户能与隶属于其所拥有的多种类型群/组中的其 他用户进行即时沟通,目前需要IM工具提供的功能是IM工具能够提供把隶 属于多种类型群/组中的多个用户聚合到一起参与会话讨论,也就是说需要IM 工具能够创建隶属于不同类型群/组中的多用户会话。为了描述简练,引入多用 户会话讨论组的概念,以下用创建多用户会话讨论组来替代所述创建隶属于不 同类型群/组中的多用户会话。
目前,基于IM工具创建多用户会话讨论组的过程为创建者首先必须在 IM工具的主面板中找到创建多用户会话讨论组的操作入口,然后通过该主面板 中创建多用户会话讨论组的操作入口,打开如图1所示的建立多人聊天的用户 选择界面。之后,以人工选择的方式将左侧联系人列表框的联系人手动添加到 右侧的已选联系人列表框中;或者,以人工选择的方式手动删除已添加的已选 联系人。从而,以这种人工选择的方式选定隶属于不同类型群/组中的多用户,并最终显示在图1中右侧的已选联系人列表框中。当点击图l中的确定按钮后 完成多用户会话讨论组的创建,得到如图2所示的多用户会话讨论组的会话界 面。图2中,参与者列表中的用户即为多用户会话讨论组中参与会话的用户。 这里,创建的多用户会话讨论组的类型分为普通讨论组与群内讨论组,普通讨 论组只能由与创建者具有好友关系的用户组成,而群内讨论组必须是与创建者 属于同一个群组的用户才能加入组成。
现有技术的缺点是首先,操作入口位于IM工具主面板上的位置过于隐
蔽,不方便用户査找该搡作入口。其次,即便找到该操作入口,但是通过该操 作入口打开建立多人聊天的用户选择界面后,需要用户进行多次手动添加操作 或删除操作才能完成隶属于不同类型群/组中的多用户的选定,并最终建立多用 户会话讨论组,这一系列操作过于繁瑣。综上所述,采用现有技术创建多用户 会话讨论组是通过人工选择的方式实现的,不便于用户操作,不符合用户快速 便捷创建多用户会话讨论组的新需要。

发明内容
有鉴于此,本发明的主要目的在于提供一种创建多用户会话的系统,能实 现快速便捷的创建多用户会话讨论组,来符合用户的新需要,同时提高用户的
体验感。
本发明的另 一 目的在于提供一种创建多用户会话的方法,能实现快速便捷 的创建多用户会话讨论组,来符合用户的新需要,同时提高用户的体验感。
为达到上述目的,本发明的技术方案是这样实现的
一种创建多用户会话的系统,该系统包括IM服务器和IM客户端,所述IM 客户端用于根据当前用户的鼠标操作、和/或键盘控制操作完成多用户会话讨论 组中用户的预选择,并启动所述讨论组的创建。
其中,所述IM客户端还用于将所述预选择的用户发送到所述IM服务器, 与所述IM服务器协商确定所述讨论组中的目标用户,完成所述讨论组的创建。
其中,所述IM客户端包括主面板管理模块、用户管理模块和windows消息管理模块;其中,
主面板管理模块,用于通过当前用户账号从用户管理模块获取到相对应的 用户号码列表,根据所述用户号码列表,建立与当前用户相对应的用户数组队 列;计算出所述用户数组队列中各用户数组对象的位置信息,并确定为相对应
的各预选择的用户的位置信息;与所述windows消息管理模块交互,根据所述
预选择的用户的位置信息、以及当前用户的鼠标操作、和/或键盘控制操作确定
所述预选择的用户;
用户管理模块,用于存储并管理用户的相关信息;
windows消息管理模块,用于管理windows消息,并与所述主面板管理模 块交互,根据当前用户的鼠标搡作、和/或键盘控制操作确定所述预选择的成员。
其中,所述主面板管理模块,还用于注册、接收并响应所述windows消息 管理模块发送的不同类型的windows拖拽消息;在接收到的所述windows拖拽 消息为当前用户释放拖拽的鼠标左键消息,或者捕获到当前用户的鼠标搡作超 出所述IM客户端主面板的有效区域的情况下,启动所述讨论组的创建。
其中,所述主面板管理模块,还用于基于所述预选择的用户建立所述讨论 组中的用户号码列表;
所述IM客户端还包括讨论组管理模块,用于在所述主面板管理模块的调 用下,从主面板管理模块获取所述讨论组中的用户号码列表;将所述讨论组中 的用户号码列表和所述当前用户账号封装到创建讨论组请求中,发送给所述IM 服务器进行用户个数上限的验证。
一种创建多用户会话的方法,该方法包括
A、 IM客户端根据当前用户的鼠标操作、和/或键盘控制操作完成多用户会 话讨论组中用户的预选择,启动所述讨论组的创建。
其中,步骤A后还包括
B、 所述IM客户端将所述预选择的用户发送到IM服务器,与所述IM服
务器协商确定所述讨论组中的目标用户,以完成所述讨论组的创建。
其中,步骤A中,所述IM客户端根据当前用户的鼠标操作、和/或键盘控制搡作完成多用户会话讨论组中用户的预选择具体为
Al、主面板管理模块通过当前用户账号获取到相对应的用户号码列表,根 据所述用户号码列表,建立与所述当前用户相对应的用户数组队列;
A2、所述主面板管理模块计算出所述用户数组队列中各用户数组对象的位
置信息,并确定为相对应的各预选择的用户的位置信息;
A3、主面板管理模块与windows消息管理模块交互,根据所述预选择的用 户的位置信息、以及所述当前用户的鼠标操作、和/或键盘控制操作确定所述预 选择的用户。
其中,步骤A1后还包括
所述主面板管理模块通过所述当前用户账号,以及获取到的包括相对应的 用户显示名称、相对应的用户状态和相对应的用户身份在内的排序信息,对所 述建立的用户数据队列中的各用户数组对象进行排序。
其中,所述用户数组对象的属性信息包括所述当前用户账号的信息、与 所述当前用户相对应的用户的位置信息以及与所述当前用户相对应的用户所占 据的大小信息。
其中,步骤A2中,所述主面板管理模块计算出所述用户数组队列中各用 户数组对象的位置信息具体为
所述主面板管理模块获取所述排序的用户数组对象中的第一个用户数组对 象,将所述第一个用户数组对象的属性信息中的所述与当前用户相对应的用户 的位置信息,确定为第一个用户数组对象的位置信息;在第一个用户数组对象 的位置信息基础上,依次累加上所述当前用户相对应的用户所占据的大小信息, 依序计算出所述排序的用户数组对象中的其他用户数组对象的位置信息。
其中,步骤A3具体为
所述主面板管理模块从所述windows消息管理模块拦截windows消息来捕 获当前用户的鼠标操作、和/或键盘操作后,在判定所述键盘操作为所述键盘控 制操作情况下,通过windows鼠标左键消息获取到所述当前用户的鼠标操作在 所述IM客户端的主面板中的位置信息,遍历所述用户数组队列中各用户数组对象,并根据与所述当前用户的鼠标操作在IM客户端的主面板中的位置信息 相匹配的用户数组对象的位置信息、所查找到的用户数组对象确定为所述预选 择的用户。
其中,步骤A中,启动所述讨论组的创建具体为
所述主面板管理模块注册、接收并响应所述windows消息管理模块发送的 不同类型的windows拖拽消息;在接收到的所述windows拖拽消息为当前用户 释放拖拽的鼠标左键消息,或者捕获到所述当前用户的鼠标操作超出所述IM 客户端主面板的有效区域的情况下,启动所述讨论组的创建。
其中,步骤B具体为
Bl 、基于所述预选择的用户建立所述讨论组中的用户号码列表,讨论组管
理模块从所述主面板管理模块获取所述讨论组中的用户号码列表;将所述讨论 组中的用户号码列表和所述当前用户账号封装到创建讨论组请求中,发送给IM
服务器进行用户个数上限的验证;
B2、所述IM服务器提取出所述用户号码列表和所述当前用户账号,并相
应于所述当前用户账号,在判定出所述用户号码列表中的用户个数大于服务器 侧预设置的用户个数上限的情况下,下发创建失败的消息给所述讨论组管理模 块;在判定出所述用户号码列表中的用户个数不大于服务器侧预设置的用户个 数上限的情况下,将所生成唯一的讨论组标识号封装到创建成功的消息中下发
给所述讨论组管理模块。
其中,步骤B2后还包括
B3、所述讨论组管理模块提取出所述讨论组标识号,将所述讨论组标识号、 所述讨论组中的用户号码列表封装到添加讨论组用户的请求中,发送给所述IM
B4、所述IM服务器提取出所述讨论组标识号和所述讨论组中的用户号码 列表,相应于所述讨论组标识号,将所述讨论组中用户号码列表中的用户确定 为所述讨论组中的目标用户并存储,以完成所述讨论组的创建。
其中,步骤B4后还包括200810129143.7
说明书第6/16页
B5、所述IM服务器根据所述讨论组中的用户号码列表查询IM状态服务 器,查询并获取到所述讨论组中用户号码列表中各用户的状态信息;
B6、当查询到所述用户的状态信息为在线时,IM服务器将成功创建讨论
组的通知消息下发给处于在线状态的各用户,使所述处于在线状态的各用户完
成参与多用户的会话讨论,所述讨论组资料的更新和下载搡作;或者,
当查询到用户的状态信息为不在线时,IM服务器不发送成功创建多用户会 话讨论组的通知消息给处于不在线状态的各用户;或者,IM服务器将成功创建 多用户会话讨论组的通知消息下发给处于不在线状态的各用户,由所述处于不
在线状态的各用户恢复到在线状态时选择是否参与多用户的会话讨论;或者,
当査询到用户的状态信息为自定义状态时,IM服务器将成功创建多用户会
话讨论组的通知消息下发给处于自定义状态的各用户,由所述处于自定义状态 的各用户选择是否参与多用户的会话讨论。
本发明系统包括IM客户端和IM服务器。IM客户端用于根据当前用户 的鼠标操作、和/或键盘控制操作完成多用户会话讨论组中用户的预选择,并启 动多用户会话讨论组的创建。
就底层实现而言,基于本发明系统中的各功能模块和方法流程能实现快速 便捷的创建多用户会话讨论组,来符合用户的新需要,同时提高用户的体验感。 就釆用本发明的直观表现形式而言,通过IM工具主面板多选用户,并加以拖 拽的操作就能自动地、'直接地得到如图2所示的多用户会话讨论组的会话界面。 举例来说,在用户需要针对话题进行讨论的时候,只需要在IM工具主面板中 依照windows操作系统的操作习惯,以鼠标选定一用户后按下shift键在主面板 中多选参与会话讨论的多个用户;然后将这些选定的多个用户用鼠标拖拽出IM 工具的主面板;松开鼠标后IM工具即可自动完成多用户会话讨论组的创建过 程,获得如图2所示的多用户会话讨论组的会话界面。而釆用现有技术是通过 人工选择的方式实现多用户会话讨论组的创建,经多次操作才能最终获得如图 2所示的多用户会话讨论组会话界面。综上所述,对比本发明和现有技术可知 采用本发明只需要简单的多选后拖拽即可自动完成多用户会话讨论组的创建不仅能快速便捷地创建多用户会话讨论组,同时提高了用户体验感;而且给熟 悉windows操作系统的用户带来了极大的操作便利与快捷,可以极大地满足用 户的个性化的需求,提高了IM工具的易用性。


图1为用户通过操作入口所打开建立多人聊天的用户选择界面的示意图2为多用户会话讨论组的会话界面的示意图3为本发明系统的组成结构示意图4为本发明方法一实施例的实现流程示意图。
具体实施例方式
本发明的核心思想是就釆用本发明的直观表现形式而言,通过鼠标、和/ 或键盘控制操作在IM工具主面板多选用户,并加以拖拽的操作就能自动完成 多用户会话讨论组的创建过程。
为使本发明的目的、技术方案和优点更加清楚明白,以下举实施例并参照 附图,对本发明进一步详细说明。
如图3所示, 一种创建多用户会话的系统,该系统包括相连的IM客户 端1和IM服务器2。这里,由于IM服务器2是现有的,且IM服务器2通常 通过与IM客户端1的交互,对登录IM客户端1的用户输入的用户账号和登录 密码进行有效性验证的鉴权操作,如果用户鉴权通过,即通过IM服务器2的 有效性验证,则用户成功登录IM客户端1;否则,IM客户端1从IM服务器 收到提示消息,以提示用户登录IM客户端1失败。因此以下仅对IM客户端1 进行阐述。
这里,IM客户端1用于根据当前用户的鼠标操作、和/或键盘控制操作完 成多用户会话讨论组中用户的预选择,并启动多用户会话讨论组的创建。IM客 户端1还用于将预选择的讨论组中用户发送到IM服务器2, IM客户端1与IM 服务器2协商确定多用户会话讨论组中的目标用户,以完成多用户会话讨论组的创建。需要指出的是,所谓预选择的讨论组中用户指当前用户希望创建到
多用户会话讨论组中的用户;所谓多用户会话讨论组中的目标用户指在创建 完成的多用户会话讨论组中,实际存在的目标用户。由于预选择的讨论组中用 户的个数可能会超过存储在IM服务器1中的预设置的用户个数上限,因此, 需要在IM客户端1与IM服务器2之间进行协商,以便确定最终的多用户会话 讨论组中的目标用户。也就是说,当前用户预选择的讨论组中用户并不一定都 存在于最终创建完成的多用户会话讨论组中。
以下对IM客户端1中具体包括的各功能模块进行阐述。 IM客户端1包括主面板管理模块ll、用户管理模块12和windows消息 管理模块13。其中,主面板管理模块11用于通过当前用户账号从用户管理模 块12获取到相对应的用户号码列表,即根据当前用户帐号与用户号码列表的对 应关系,使当前用户能获取到创建多用户会话讨论组所需的用户号码列表;根 据用户号码列表,建立与当前用户相对应的用户数组队列。计算出用户数组队 列中各用户数组对象的位置信息,并确定为显示在IM客户端的主面板中相对 应的各预选择的用户的位置信息。与windows消息管理模块13交互,根据预 选择的用户的位置信息、以及当前用户的鼠标操作、和/或键盘控制操作确定所 述预选择的成员。用户管理模块12用于存储并管理用户的相关信息,包括用户 号码列表和后续的排序信息。windows消息管理模块13用于管理windows消息, 并与主面板管理模块11交互,以实现根据当前用户的鼠标操作、和/或键盘控 制操作确定所述预选择的成员。
其中,主面板管理模块ll进一步用于通过当前用户账号,从用户管理模块 12获取到包括相对应的用户显示名称、相对应的用户状态和相对应的用户身份 在内的排序信息,对所述建立的用户数据队列中的各用户数组对象进行排序。 针对用户数组对象而言,用户数据队列中的用户数组对象具有的属性信息皆包 括当前用户账号的信息、与当前用户相对应的用户的位置信息以及与当前用 户相对应的用户所占据的大小信息。这里,针对与当前用户相对应的用户而言, 根据当前用户帐号与用户号码列表的对应关系,使当前用户获取到创建多用户会话讨论组所需的用户号码列表,那么与当前用户相对应的用户即为当前用 户创建多用户会话讨论组所需用户号码列表中的用户。当前用户相对应的用户
所占据的大小信息是釆用统一的标准进行分配的,为固定的大小信息。
这里,主面板管理模块ll还用于获取所述排序的用户数组对象中的第一个 用户数组对象,将第一个用户数组对象的属性信息中的与当前用户相对应的用 户的位置信息,确定为第一个用户数组对象的位置信息,也就是经排序后构成
的用户数组队列中用户数据对象的初始位置信息;在第一个用户数组对象的位
置信息基础上,累加上当前用户相对应的用户所占据的大小信息,依序计算出 所述排序的用户数组对象中的其他用户数组对象的位置信息。这里,需要指出 的是,由于当前用户相对应的用户所占据的大小信息为固定的大小信息,因此, 只需要在经排序后构成的用户数组队列中用户数据对象的初始位置信息上进行 所述大小信息的依次累加,即可得到所述排序的用户数组对象中的其他用户数 组对象的位置信息。比如,所述排序的用户数组对象中的第二个用户数组对象
的位置信息为所述用户数据对象的初始位置信息累加上所述大小信息。所述 排序的用户数组对象中的第三个用户数组对象的位置信息通过在之前得到的累 加值,即所述用户数据对象的初始位置信息累加上所述大小信息获得的累加值 基础上依次累加上所述大小信息来得到。
其中,主面板管理模块11进一步用于从windows消息管理模块13拦截 windows消息来捕获当前用户的鼠标操作和键盘操作后,在判定所述键盘操作 为所述键盘控制操作情况下,通过windows鼠标左键消息获取到当前用户的鼠 标操作在IM客户端的主面板中的位置信息,遍历用户数组队列中各用户数组 对象,并根据与所述当前用户的鼠标操作在IM客户端的主面板中的位置信息 相匹配的用户数组对象的位置信息、所查找到的用户数组对象确定为所述预选 择的用户。这里,举例来说,所述键盘控制操作可以为当前用户按下键盘的键 值为shift键的控制操作,也可以为当前用户按下键盘的键值为Ctrl键的控制操 作。
这里,主面板管理模块11还用于注册、接收并响应windows消息管理模块13发送的不同类型的windows拖拽消息;在接收到的windows拖拽消息为当前 用户释放拖拽的鼠标左键消息,或者捕获到当前用户的鼠标操作超出IM客户 端主面板的有效区域的情况下,启动多用户会话讨论组的创建。其中,举例来 说,windows拖拽消息包括DragMove, DragEnter以及DragLeave。那么当用户 对所述预选择的用户选择完毕后,点击鼠标左键开始拖拽的时候,则windows 消息管理模块13会传送对应的DragMove以及DragEnter消息,这样,IM客户 端的主面板就可以针对性地进行响应,比如可以设置鼠标的形状。当主面板管 理模块11接收到当前用户释放拖拽的鼠标左键消息即DragLeave消息时,说明 当前用户松开了拖拽的鼠标操作,从而主面板管理模块ll根据所述预选择的用 户预测用户希望进行讨论组的创建,启动多用户会话讨论组的创建。
其中,主面板管理模块ll还用于基于所述预选择的用户建立多用户会话讨 论组中的用户号码列表;IM客户端1还包括讨论组管理模块14,用于在主面 板管理模块11的调用下,从主面板管理模块11获取多用户会话讨论组中的用 户号码列表;将多用户会话讨论组中的用户号码列表和当前用户账号封装到创 建讨论组请求中,发送给IM服务器2进行用户个数上限的验证。
这里,IM服务器2进一步用于提取出用户号码列表和当前用户账号,并相 应于当前用户账号,在判定出用户号码列表中的用户个数大于服务器侧预设置 的用户个数上限的情况下,下发创建失败的消息给讨论组管理模块14;在判定 出用户号码列表中的用户个数不大于服务器侧预设置的用户个数上限的情况 下,将所生成唯 一 的讨论组标识号封装到创建成功的消息中下发给讨论组管理 模块14。其中,上限可以是系统默认的,也可以是用户预先设置的。
这里,讨论组管理模块14进一步用于提取出多用户会话讨论组标识号,将 多用户会话讨论组标识号、多用户会话讨论组中的用户号码列表封装到添加讨 论组用户的请求中,发送给IM服务器2。 IM服务器2还用于提取出多用户会 话讨论组标识号和多用户会话讨论组中的用户号码列表,相应于多用户会话讨 论组标识号,将多用户会话讨论组中用户号码列表中的用户确定为多用户会话 讨论组中的目标用户并存储,以完成多用户会话讨论组的创建。如图3所示, 一种创建多用户会话的系统,该系统还包括IM状态服务器 3,用于存储用户的状态信息。那么,在IM客户端1完成多用户会话讨论组的 创建后,IM服务器2还用于根据多用户会话讨论组中的用户号码列表查询IM 状态服务器3,获取多用户会话讨论组中用户号码列表中各用户的状态信息, 并根据各用户状态信息的不同,执行不同的后续操作,使被IM客户端1请求 加入该多用户会话讨论组中的各用户能参与多用户会话讨论。包括以下几种情 况。
第一种情况,当査询到用户的状态信息为在线时,IM服务器2将成功创建 多用户会话讨论组的通知消息下发给处于在线状态的各用户,以便使处于在线 状态的各用户完成参与多用户的会话讨论,多用户会话讨论组资料的更新和下 载操作。
第二种情况,当查询到用户的状态信息为不在线时,IM服务器2可以不发 送成功创建多用户会话讨论组的通知消息给处于不在线状态的各用户。或者, IM服务器2也可以将成功创建多用户会话讨论组的通知消息下发给处于不在线 状态的各用户,由处于不在线状态的各用户恢复到在线状态时选择是否参与多 用户的会话讨论。
第三种情况,当查询到用户的状态信息为自定义状态时,IM服务器2将成 功创建多用户会话讨论组的通知消息下发给处于自定义状态的各用户,由处于 自定义状态的各用户选择是否参与多用户的会话讨论。这里,用户可以设置自 定义状态为用于防止打扰的状态,比如将自定义状态设置为拒绝访问状态,那 么,当查询到用户的状态信息为拒绝访问状态时,IM服务器2不发送成功创建 多用户会话讨论组的通知消息给处于拒绝访问状态的各用户。
方法实施例 一为IM客户端根据当前用户的鼠标操作和键盘控制操作完成 多用户会话讨论组的创建。即为通过鼠标和键盘控制操作在IM工具主面板多 选用户,并加以鼠标拖拽的操作就能自动完成多用户会话讨论组的创建过程。
那么,如图4所示,本实施例中创建多用户会话的流程包括以下步骤
步骤IOI、用户成功登录IM客户端后,IM客户端根据当前用户的鼠标操作和键盘控制搡作完成多用户会话讨论组中用户的预选择,启动多用户会话讨 论组的创建。
步骤101中,用户成功登录IM客户端的具体处理过程是通过IM客户端与
IM服务器之间的交互完成的。具体来说,用户在IM客户端中输入用户账号和 登录密码后,IM服务器对登录IM客户端的用户进行有效性验证的鉴权操作, 如果用户鉴权通过,即通过IM服务器的有效性验证,则用户成功登录IM客户 端;否则,IM客户端从IM服务器收到提示消息,以提示用户登录IM客户端 失败。
步骤IOI中,IM客户端根据当前用户的鼠标操作和键盘控制操作完成多用 户会话讨论组中用户的预选择的具体处理过程包括
步骤IOII、主面板管理模块通过当前用户账号获取到相对应的用户号码列 表,根据用户号码列表,建立与当前用户相对应的用户数组队列。
这里,用户数组队列由用户数组对象构成,用户数组对象的属性信息包括 当前用户账号的信息、与当前用户相对应的用户的位置信息以及与当前用户相 对应的用户所占据的大小信息。需要对用户数组对象的属性信息进行初始化。
步骤1012、主面板管理模块通过当前用户账号,以及获取到的包括相对应 的用户显示名称、相对应的用户状态和相对应的用户身份在内的排序信息,对 所述建立的用户数据队列中的各用户数组对象进行排序。
步骤1013、主面板管理模块计算出用户数组队列中各用户数组对象的位置
信息,并确定为显示在IM客户端的主面板中相对应的各预选择的用户的位置
传自 i口 ,a、。
这里,用户数组对象的属性信息包括当前用户账号的信息、与当前用户 相对应的用户的位置信息以及与当前用户相对应的用户所占据的大小信息。那 么,步骤1013中,主面板管理模块计算出用户数组队列中各用户数组对象的位 置信息的具体处理过程为主面板管理模块获取所述排序的用户数组对象中的 第一个用户数组对象,将第一个用户数组对象的属性信息中的与当前用户相对 应的用户的位置信息,确定为第一个用户数组对象的位置信息;在第一个用户数组对象的位置信息基础上,依次累加上当前用户相对应的用户所占据的大小 信息,依序计算出所述排序的用户数组对象中的其他用户数组对象的位置信息。 这里,需要指出的是,由于当前用户相对应的用户所占据的大小信息是釆 用统一的标准进行分配的,为固定的大小信息。因此,只需要在经排序后构成 的用户数组队列中用户数据对象的初始位置信息上进行所述大小信息的依次累 加,即可得到所述排序的用户数组对象中的其他用户数组对象的位置信息。比 如,所述排序的用户数组对象中的第二个用户数组对象的位置信息为所述用 户数据对象的初始位置信息累加上所述大小信息。所述排序的用户数组对象中 的第三个用户数组对象的位置信息通过在之前得到的累加值,即所述用户数据 对象的初始位置信息累加上所述大小信息获得的累加值基础上依次累加上所述 大小信息来得到。也就是说,主面板管理模块只需要确定能绘制在主面板区域 中用户数组对象的初始位置信息、以及每个用户数组对象固定的大小信息,并 按照步骤1012中用户数据队列中的各用户数组对象的排序,就可以计算出用户 数组队列中各用户数组对象的位置。通过计算出的用户数组队列中各用户数组
对象的位置,最终可以得到物理上显示在IM客户端的主面板区域中的用户位置。
步骤1014、主面板管理模块与windows消息管理模块交互,根据预选择的 用户的位置信息、以及当前用户的鼠标操作和键盘控制操作确定所述预选择的 用户。
这里,步骤1014的具体处理过程为主面板管理模块从windows消息管 理模块拦截windows消息来捕获当前用户的鼠标操作和键盘操作后,在判定键 盘操作为键盘控制操作情况下,通过windows鼠标左键消息获取到当前用户的 鼠标操作在IM客户端的主面板中的位置信息,遍历用户数组队列中各用户数 组对象,并根据与当前用户的鼠标操作在IM客户端的主面板中的位置信息相 匹配的用户数组对象的位置信息、所查找到的用户数组对象确定为所述预选择 的用户。这里,所述键盘控制操作可以为当前用户按下键盘的键值为shift键的 控制操作,也可以为当前用户按下键盘的键值为ctrl键的控制操作。针对当前用户按下键盘的键值为Shift键的控制操作而言,举例来说,主面
板管理模块从windows消息管理模块拦截windows消息来捕获当前用户的鼠标 操作和键盘搡作后,通过windows API获取当前用户按下键盘的键值,判断该 键值是否为Shift键,如果是,则通过windows鼠标左键消息获取到当前用户的 鼠标操作在IM客户端的主面板中的位置信息,遍历用户数组队列中各用户数 组对象,并根据与当前用户的鼠标操作在IM客户端的主面板中的位置信息相 匹配的用户数组对象的位置信息、所查找到的用户数组对象确定为所述预选择 的用户。否则,该键值不是Shift键,说明用户不属于多选,退出当前多用户会 话讨论组的创建流程。
步骤IOI中,启动多用户会话讨论组的创建具体为主面板管理模块注册、 接收并响应windows消息管理模块发送的不同类型的windows拖拽消息;在接 收到的windows拖拽消息为当前用户释放拖拽的鼠标左键消息,或者捕获到当 前用户的鼠标操作超出IM客户端主面板的有效区域的情况下,启动多用户会 话讨论组的创建。
这里,举例来说,windows拖拽消息包括DragMove, DragEnter以及 DmgLeave。那么当用户对所述预选择的用户选择完毕后,点击鼠标左键开始拖 拽的时候,贝1』windows消息管理模块会传送对应的DragMove以及DragEnter 消息,这样,IM客户端的主面板就可以针对性地进行响应,比如可以设置鼠标 的形状。当主面板管理模块接收到当前用户释放拖拽的鼠标左键消息即 DragLeave消息时,说明当前用户松开了拖拽的鼠标操作,从而主面板管理模 块根据所述预选择的用户预测用户希望进行讨论组的创建,启动多用户会话讨 论组的创建。
步骤102、 IM客户端将所述预选择的用户发送到IM服务器,与IM服务 器协商确定多用户会话讨论组中的目标用户,以完成多用户会话讨论组的创建。 这里,步骤102的具体处理过程包括
步骤1021、主面板管理模块基于所述预选择的用户建立多用户会话讨论组 中的用户号码列表,调用讨论组管理模块的创建多用户会话讨论组的接口,将建立的多用户会话讨论组中的用户号码列表发送给讨论组管理模块,讨论组管 理模块从主面板管理模块获取多用户会话讨论组中的用户号码列表;将多用户 会话讨论组中的用户号码列表和当前用户账号封装到创建讨论组请求中,发送 给IM服务器进行用户个数上限的验证。
步骤1022、 IM服务器接收到创建讨论组请求,解析以及解密确认是有效
请求后,提取出用户号码列表和当前用户账号,并相应于当前用户账号,在判 定出用户号码列表中的用户个数大于服务器侧预设置的用户个数上限的情况
下,下发创建失败的消息给讨论组管理模块;在判定出用户号码列表中的用户
个数不大于服务器侧预设置的用户个数上限的情况下,将所生成唯一的多用户 会话讨论组标识号封装到创建成功的消息中下发给讨论组管理模块。
步骤1023、讨论组管理模块提取出多用户会话讨论组标识号,将多用户会 话讨论组标识号、多用户会话讨论组中的用户号码列表封装到添加讨论组用户 的请求中,发送给IM服务器。
步骤1024、 IM服务器提取出多用户会话讨论组标识号和多用户会话讨论 组中的用户号码列表,相应于多用户会话讨论组标识号,将多用户会话讨论组 中用户号码列表中的用户确定为多用户会话讨论组中的目标用户并存储,以 完成多用户会话讨论组的创建。也就是说,将多用户会话讨论组中用户号码列 表写入IM服务器数据库中、对应多用户会话讨论组标识号的数据行中进行存 储。
步骤1025、多用户会话讨论组中用户号码列表成功存储到IM服务器数据 库中后,IM服务器根据多用户会话讨论组中的用户号码列表查询IM状态服务 器,查询并获取到多用户会话讨论组中用户号码列表中各用户的状态信息。
也就是说,在发起创建多用户会话讨论组的IM客户端完成多用户会话讨 论组的创建后,IM服务器进一步根据多用户会话讨论组中的用户号码列表查询 IM状态服务器,获取多用户会话讨论组中用户号码列表中各用户的状态信息, 并根据各用户状态信息的不同,执行不同的后续操作,使被IM客户端请求加 入该多用户会话讨论组中的各用户能参与多用户会话讨论。那么,步骤1025后执行的步骤1026包括以下几种情况。
步骤1026a、当查询到用户的状态信息为在线时,IM服务器将成功创建讨 论组的通知消息下发给处于在线状态的各用户,以使处于在线状态的各用户完 成参与多用户的会话讨论,多用户会话讨论组资料的更新和下载操作。
步骤1026b、当査询到用户的状态信息为不在线时,IM服务器不发送成功 创建多用户会话讨论组的通知消息给处于不在线状态的各用户;或者,IM服务 器将成功创建多用户会话讨论组的通知消息下发给处于不在线状态的各用户, 由处于不在线状态的各用户恢复到在线状态时选择是否参与多用户的会话讨 论。
步骤1026c、当查询到用户的状态信息为自定义状态时,IM服务器将成功 创建多用户会话讨论组的通知消息下发给处于自定义状态的各用户,由处于自 定义状态的各用户选择是否参与多用户的会话讨论。
这里,用户可以设置自定义状态为用于防止打扰的状态,比如将自定义状 态设置为拒绝访问状态,那么,当查询到用户的状态信息为拒绝访问状态时, IM服务器不发送成功创建多用户会话讨论组的通知消息给处于拒绝访问状态 的各用户。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1、一种创建多用户会话的系统,包括即时通信IM服务器,其特征在于,该系统还包括IM客户端,所述IM客户端用于根据当前用户的鼠标操作、和/或键盘控制操作完成多用户会话讨论组中用户的预选择,并启动所述讨论组的创建。
2、 根据权利要求l所述的系统,其特征在于,所述IM客户端还用于将所 述预选择的用户发送到所述IM服务器,与所述IM服务器协商确定所述讨论组 中的目标用户,完成所述讨论组的创建。
3、 根据权利要求2所述的系统,其特征在于,所述IM客户端包括主面板 管理模块、用户管理模块和windows消息管理模块;其中,主面板管理模块,用于通过当前用户账号从用户管理模块获取到相对应的 用户号码列表,根据所述用户号码列表,建立与当前用户相对应的用户数组队 列;计算出所述用户数组队列中各用户数组对象的位置信息,并确定为相对应 的各预选择的用户的位置信息;与所述windows消息管理模块交互,根据所述 预选择的用户的位置信息、以及当前用户的鼠标操作、和/或键盘控制操作确定 所述预选择的用户;用户管理模块,用于存储并管理用户的相关信息;windows消息管理模块,用于管理windows消息,并与所述主面板管理模 块交互,根据当前用户的鼠标操作、和/或键盘控制操作确定所述预选择的成员。
4、 根据权利要求3所述的系统,其特征在于,所述主面板管理模块,还用 于注册、接收并响应所述windows消息管理模块发送的不同类型的windows拖 拽消息;在接收到的所述windows拖拽消息为当前用户释放拖拽的鼠标左键消 息,或者捕获到当前用户的鼠标操作超出所述IM客户端主面板的有效区域的 情况下,启动所述讨论组的创建。
5、 根据权利要求2至4中任一项所述的系统,其特征在于,所述主面板管 理模块,还用于基于所述预选择的用户建立所述讨论组中的用户号码列表;所述IM客户端还包括讨论组管理模块,用于在所述主面板管理模块的调用下,从主面板管理模块获取所述讨论组中的用户号码列表;将所述讨论组中的用户号码列表和所述当前用户账号封装到创建讨论组请求中,发送给所述IM服务器进行用户个数上限的验证。
6、 一种创建多用户会话的方法,其特征在于,该方法包括A、 IM客户端根据当前用户的鼠标操作、和/或键盘控制操作完成多用户会 话讨论组中用户的预选择,启动所述讨论组的创建。
7、 根据权利要求6所述的方法,其特征在于,步骤A后还包括B、 所述IM客户端将所述预选择的用户发送到IM服务器,与所述IM服 务器协商确定所述讨论组中的目标用户,以完成所述讨论组的创建。
8、 根据权利要求7所述的方法,其特征在于,步骤A中,所述IM客户端 根据当前用户的鼠标操作、和/或键盘控制搡作完成多用户会话讨论组中用户的 预选择具体为Al、主面板管理模块通过当前用户账号获取到相对应的用户号码列表,根 据所述用户号码列表,建立与所述当前用户相对应的用户数组队列;A2、所述主面板管理模块计算出所述用户数组队列中各用户数组对象的位 置信息,并确定为相对应的各预选择的用户的位置信息;A3、主面板管理模块与windows消息管理模块交互,根据所述预选择的用 户的位置信息、以及所述当前用户的鼠标操作、和/或键盘控制操作确定所述预 选择的用户。
9、 根据权利要求8所述的方法,其特征在于,步骤A1后还包括 所述主面板管理模块通过所述当前用户账号,以及获取到的包括相对应的用户显示名称、相对应的用户状态和相对应的用户身份在内的排序信息,对所 述建立的用户数据队列中的各用户数组对象进行排序。
10、 根据权利要求9所述的方法,其特征在于,所述用户数组对象的属性信息包括所述当前用户账号的信息、与所述当前用户相对应的用户的位置信 息以及与所述当前用户相对应的用户所占据的大小信息。
11、 根据权利要求IO所述的方法,其特征在于,步骤A2中,所述主面板管理模块计算出所述用户数组队列中各用户数组对象的位置信息具体为所述主面板管理模块获取所述排序的用户数组对象中的第一个用户数组对 象,将所述第一个用户数组对象的属性信息中的所述与当前用户相对应的用户 的位置信息,确定为第一个用户数组对象的位置信息;在第一个用户数组对象 的位置信息基础上,依次累加上所述当前用户相对应的用户所占据的大小信息, 依序计算出所述排序的用户数组对象中的其他用户数组对象的位置信息。
12、 根据权利要求ll所述的方法,其特征在于,步骤A3具体为 所述主面板管理模块从所述windows消息管理模块拦截windows消息来捕获当前用户的鼠标操作、和/或键盘操作后,在判定所述键盘操作为所述键盘控 制操作情况下,通过windows鼠标左键消息获取到所述当前用户的鼠标操作在 所述IM客户端的主面板中的位置信息,遍历所述用户数组队列中各用户数组 对象,并根据与所述当前用户的鼠标操作在IM客户端的主面板中的位置信息 相匹配的用户数组对象的位置信息、所查找到的用户数组对象确定为所述预选 择的用户。
13、 根据权利要求6所述的方法,其特征在于,步骤A中,启动所述讨论 组的创建具体为所述主面板管理模块注册、接收并响应所述windows消息管理模块发送的 不同类型的windows拖拽消息;在接收到的所述windows拖拽消息为当前用户 释放拖拽的鼠标左键消息,或者捕获到所述当前用户的鼠标操作超出所述IM 客户端主面板的有效区域的情况下,启动所述讨论组的创建。
14、 根据权利要求7至13中任一项所述的方法,其特征在于,步骤B具 体为:Bl、基于所述预选择的用户建立所述讨论组中的用户号码列表,讨论组管理模块从所述主面板管理模块获取所述讨论组中的用户号码列表;将所述讨论 组中的用户号码列表和所述当前用户账号封装到创建讨论组请求中,发送给IM服务器进行用户个数上限的验证;B2、所述IM服务器提取出所述用户号码列表和所述当前用户账号,并相应于所述当前用户账号,在判定出所述用户号码列表中的用户个数大于服务器 侧预设置的用户个数上限的情况下,下发创建失败的消息给所述讨论组管理模块;在判定出所述用户号码列表中的用户个数不大于服务器侧预设置的用户个数上限的情况下,将所生成唯一的讨论组标识号封装到创建成功的消息中下发 给所述讨论组管理模块。
15、 根据权利要求14所述的方法,其特征在于,步骤B2后还包括B3、所述讨论组管理模块提取出所述讨论组标识号,将所述讨论组标识号、 所述讨论组中的用户号码列表封装到添加讨论组用户的请求中,发送给所述IM 服务器;B4、所述IM服务器提取出所述讨论组标识号和所述讨论组中的用户号码 列表,相应于所述讨论组标识号,将所述讨论组中用户号码列表中的用户确定 为所述讨论组中的目标用户并存储,以完成所述讨论组的创建。
16、 根据权利要求15所述的方法,其特征在于,步骤B4后还包括B5、所述IM服务器根据所述讨论组中的用户号码列表查询IM状态服务 器,查询并获取到所述讨论组中用户号码列表中各用户的状态信息;B6、当查询到所述用户的状态信息为在线时,IM服务器将成功创建讨论 组的通知消息下发给处于在线状态的各用户,使所述处于在线状态的各用户完 成参与多用户的会话讨论,所述讨论组资料的更新和下载操作;或者,当査询到用户的状态信息为不在线时,IM服务器不发送成功创建多用户会 话讨论组的通知消息给处于不在线状态的各用户;或者,IM服务器将成功创建 多用户会话讨论组的通知消息下发给处于不在线状态的各用户,由所述处于不在线状态的各用户恢复到在线状态时选择是否参与多用户的会话讨论;或者,当查询到用户的状态信息为自定义状态时,IM服务器将成功创建多用户会话讨论组的通知消息下发给处于自定义状态的各用户,由所述处于自定义状态 的各用户选择是否参与多用户的会话讨论。
全文摘要
本发明公开了一种创建多用户会话的系统,该系统包括即时通信(IM)客户端,IM客户端用于根据当前用户的鼠标操作、和/或键盘控制操作完成多用户会话讨论组中用户的预选择,并启动所述讨论组的创建。本发明还公开了一种创建多用户会话的方法,该方法包括IM客户端根据当前用户的鼠标操作、和/或键盘控制操作完成多用户会话讨论组中用户的预选择,启动所述讨论组的创建。采用本发明的系统和方法,能实现快速便捷的创建讨论组,来符合用户的新需要,同时提高用户的体验感。
文档编号H04L12/58GK101296200SQ20081012914
公开日2008年10月29日 申请日期2008年6月30日 优先权日2008年6月30日
发明者李建珍 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1