CN101296200B - 一种创建多用户会话的***和方法 - Google Patents
一种创建多用户会话的***和方法 Download PDFInfo
- Publication number
- CN101296200B CN101296200B CN2008101291437A CN200810129143A CN101296200B CN 101296200 B CN101296200 B CN 101296200B CN 2008101291437 A CN2008101291437 A CN 2008101291437A CN 200810129143 A CN200810129143 A CN 200810129143A CN 101296200 B CN101296200 B CN 101296200B
- Authority
- CN
- China
- Prior art keywords
- user
- discussion group
- management module
- group
- main panel
- 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
- 238000000034 method Methods 0.000 title claims abstract description 33
- 239000000284 extract Substances 0.000 claims description 9
- 238000004806 packaging method and process Methods 0.000 claims description 8
- 230000000977 initiatory effect Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 description 7
- 238000012795 verification Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种创建多用户会话的***,该***包括:即时通信(IM)客户端,IM客户端用于根据当前用户的鼠标操作、和/或键盘控制操作完成多用户会话讨论组中用户的预选择,并启动所述讨论组的创建。本发明还公开了一种创建多用户会话的方法,该方法包括:IM客户端根据当前用户的鼠标操作、和/或键盘控制操作完成多用户会话讨论组中用户的预选择,启动所述讨论组的创建。采用本发明的***和方法,能实现快速便捷的创建讨论组,来符合用户的新需要,同时提高用户的体验感。
Description
技术领域
本发明涉及创建多用户会话的技术,尤其涉及一种通过即时通信(IM)工具主面板多选用户后以拖拽方式快速创建多用户会话的***和方法。
背景技术
IM工具发展到今天,已经被大多数的用户所接受,随着用户使用IM工具的时间的增长,用户的需要不只局限于采用IM工具进行单对单沟通的方式,而需要IM工具能够提供具有同一特征的社会群体所建立的多人沟通平台,这样就出现了用户群和兴趣组等群/组的概念,那么用户采用IM工具提供的多人沟通平台,可以与隶属于当前群/组中的其他用户进行有效的、即时的沟通。另外,由于用户通常拥有多种类型的群/组,例如高中同学群、同事群等。因此,为了更好地满足用户需要,使用户能与隶属于其所拥有的多种类型群/组中的其他用户进行即时沟通,目前需要IM工具提供的功能是:IM工具能够提供把隶属于多种类型群/组中的多个用户聚合到一起参与会话讨论,也就是说需要IM工具能够创建隶属于不同类型群/组中的多用户会话。为了描述简练,引入多用户会话讨论组的概念,以下用创建多用户会话讨论组来替代所述创建隶属于不同类型群/组中的多用户会话。
目前,基于IM工具创建多用户会话讨论组的过程为:创建者首先必须在IM工具的主面板中找到创建多用户会话讨论组的操作入口,然后通过该主面板中创建多用户会话讨论组的操作入口,打开如图1所示的建立多人聊天的用户选择界面。之后,以人工选择的方式将左侧联系人列表框的联系人手动添加到右侧的已选联系人列表框中;或者,以人工选择的方式手动删除已添加的已选联系人。从而,以这种人工选择的方式选定隶属于不同类型群/组中的多用户, 并最终显示在图1中右侧的已选联系人列表框中。当点击图1中的确定按钮后完成多用户会话讨论组的创建,得到如图2所示的多用户会话讨论组的会话界面。图2中,参与者列表中的用户即为多用户会话讨论组中参与会话的用户。这里,创建的多用户会话讨论组的类型分为普通讨论组与群内讨论组,普通讨论组只能由与创建者具有好友关系的用户组成,而群内讨论组必须是与创建者属于同一个群组的用户才能加入组成。
现有技术的缺点是:首先,操作入口位于IM工具主面板上的位置过于隐蔽,不方便用户查找该操作入口。其次,即便找到该操作入口,但是通过该操作入口打开建立多人聊天的用户选择界面后,需要用户进行多次手动添加操作或删除操作才能完成隶属于不同类型群/组中的多用户的选定,并最终建立多用户会话讨论组,这一系列操作过于繁琐。综上所述,采用现有技术创建多用户会话讨论组是通过人工选择的方式实现的,不便于用户操作,不符合用户快速便捷创建多用户会话讨论组的新需要。
发明内容
有鉴于此,本发明的主要目的在于提供一种创建多用户会话的***,能实现快速便捷的创建多用户会话讨论组,来符合用户的新需要,同时提高用户的体验感。
本发明的另一目的在于提供一种创建多用户会话的方法,能实现快速便捷的创建多用户会话讨论组,来符合用户的新需要,同时提高用户的体验感。
为达到上述目的,本发明的技术方案是这样实现的:
一种创建多用户会话的***,该***包括IM服务器和IM客户端,所述IM客户端用于根据当前用户的鼠标操作、和/或键盘控制操作完成多用户会话讨论组中用户的预选择,并启动所述讨论组的创建;将预选择的用户发送到所述IM服务器,与所述IM服务器协商确定所述讨论组中的目标用户,完成所述讨论组的创建;其中,所述讨论组中的目标用户为所述预选择的用户的子集。
其中,所述IM客户端包括主面板管理模块、用户管理模块和windows消 息管理模块;其中,
主面板管理模块,用于通过当前用户账号从用户管理模块获取到相对应的用户号码列表,根据所述用户号码列表,建立与当前用户相对应的用户数组队列;计算出所述用户数组队列中各用户数组对象的位置信息,并确定为相对应的各预选择的用户的位置信息;与所述windows消息管理模块交互,根据所述预选择的用户的位置信息、以及当前用户的鼠标操作、和/或键盘控制操作确定所述预选择的用户;
用户管理模块,用于存储并管理用户的相关信息;
windows消息管理模块,用于管理windows消息,并与所述主面板管理模块交互,根据当前用户的鼠标操作、和/或键盘控制操作确定所述预选择的成员。
其中,所述主面板管理模块,还用于注册、接收并响应所述windows消息管理模块发送的不同类型的windows拖拽消息;在接收到的所述windows拖拽消息为当前用户释放拖拽的鼠标左键消息,或者捕获到当前用户的鼠标操作超出所述IM客户端主面板的有效区域的情况下,启动所述讨论组的创建。
其中,所述主面板管理模块,还用于基于所述预选择的用户建立所述讨论组中的用户号码列表;
所述IM客户端还包括讨论组管理模块,用于在所述主面板管理模块的调用下,从主面板管理模块获取所述讨论组中的用户号码列表;将所述讨论组中的用户号码列表和所述当前用户账号封装到创建讨论组请求中,发送给所述IM服务器进行用户个数上限的验证。
一种创建多用户会话的方法,该方法包括:
A、IM客户端根据当前用户的鼠标操作、和/或键盘控制操作完成多用户会话讨论组中用户的预选择,启动所述讨论组的创建;
B、所述IM客户端将预选择的用户发送到IM服务器,与所述IM服务器协商确定所述讨论组中的目标用户,以完成所述讨论组的创建;其中,所述讨论组中的目标用户为所述预选择的用户的子集。
其中,步骤A中,所述IM客户端根据当前用户的鼠标操作、和/或键盘控 制操作完成多用户会话讨论组中用户的预选择具体为:
A1、主面板管理模块通过当前用户账号获取到相对应的用户号码列表,根据所述用户号码列表,建立与所述当前用户相对应的用户数组队列;
A2、所述主面板管理模块计算出所述用户数组队列中各用户数组对象的位置信息,并确定为相对应的各预选择的用户的位置信息;
A3、主面板管理模块与windows消息管理模块交互,根据所述预选择的用户的位置信息、以及所述当前用户的鼠标操作、和/或键盘控制操作确定所述预选择的用户。
其中,步骤A1后还包括:
所述主面板管理模块通过所述当前用户账号,以及获取到的包括相对应的用户显示名称、相对应的用户状态和相对应的用户身份在内的排序信息,对所述建立的用户数据队列中的各用户数组对象进行排序。
其中,所述用户数组对象的属性信息包括:所述当前用户账号的信息、与所述当前用户相对应的用户的位置信息以及与所述当前用户相对应的用户所占据的大小信息。
其中,步骤A2中,所述主面板管理模块计算出所述用户数组队列中各用户数组对象的位置信息具体为:
所述主面板管理模块获取所述排序的用户数组对象中的第一个用户数组对象,将所述第一个用户数组对象的属性信息中的所述与当前用户相对应的用户的位置信息,确定为第一个用户数组对象的位置信息;在第一个用户数组对象的位置信息基础上,依次累加上所述当前用户相对应的用户所占据的大小信息,依序计算出所述排序的用户数组对象中的其他用户数组对象的位置信息。
其中,步骤A3具体为:
所述主面板管理模块从所述windows消息管理模块拦截windows消息来捕获当前用户的鼠标操作、和/或键盘操作后,在判定所述键盘操作为所述键盘控制操作情况下,通过windows鼠标左键消息获取到所述当前用户的鼠标操作在所述IM客户端的主面板中的位置信息,遍历所述用户数组队列中各用户数组 对象,并根据与所述当前用户的鼠标操作在IM客户端的主面板中的位置信息相匹配的用户数组对象的位置信息、所查找到的用户数组对象确定为所述预选择的用户。
其中,步骤A中,启动所述讨论组的创建具体为:
所述主面板管理模块注册、接收并响应所述windows消息管理模块发送的不同类型的windows拖拽消息;在接收到的所述windows拖拽消息为当前用户释放拖拽的鼠标左键消息,或者捕获到所述当前用户的鼠标操作超出所述IM客户端主面板的有效区域的情况下,启动所述讨论组的创建。
其中,步骤B具体为:
B1、基于所述预选择的用户建立所述讨论组中的用户号码列表,讨论组管理模块从所述主面板管理模块获取所述讨论组中的用户号码列表;将所述讨论组中的用户号码列表和所述当前用户账号封装到创建讨论组请求中,发送给IM服务器进行用户个数上限的验证;
B2、所述IM服务器提取出所述用户号码列表和所述当前用户账号,并相应于所述当前用户账号,在判定出所述用户号码列表中的用户个数大于服务器侧预设置的用户个数上限的情况下,下发创建失败的消息给所述讨论组管理模块;在判定出所述用户号码列表中的用户个数不大于服务器侧预设置的用户个数上限的情况下,将所生成唯一的讨论组标识号封装到创建成功的消息中下发给所述讨论组管理模块。
其中,步骤B2后还包括:
B3、所述讨论组管理模块提取出所述讨论组标识号,将所述讨论组标识号、所述讨论组中的用户号码列表封装到添加讨论组用户的请求中,发送给所述IM服务器;
B4、所述IM服务器提取出所述讨论组标识号和所述讨论组中的用户号码列表,相应于所述讨论组标识号,将所述讨论组中用户号码列表中的用户确定为所述讨论组中的目标用户并存储,以完成所述讨论组的创建。
其中,步骤B4后还包括:
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包括:主面板管理模块11、用户管理模块12和windows消息管理模块13。其中,主面板管理模块11用于通过当前用户账号从用户管理模块12获取到相对应的用户号码列表,即根据当前用户帐号与用户号码列表的对应关系,使当前用户能获取到创建多用户会话讨论组所需的用户号码列表;根据用户号码列表,建立与当前用户相对应的用户数组队列。计算出用户数组队列中各用户数组对象的位置信息,并确定为显示在IM客户端的主面板中相对应的各预选择的用户的位置信息。与windows消息管理模块13交互,根据预选择的用户的位置信息、以及当前用户的鼠标操作、和/或键盘控制操作确定所述预选择的成员。用户管理模块12用于存储并管理用户的相关信息,包括用户号码列表和后续的排序信息。windows消息管理模块13用于管理windows消息,并与主面板管理模块11交互,以实现根据当前用户的鼠标操作、和/或键盘控制操作确定所述预选择的成员。
其中,主面板管理模块11进一步用于通过当前用户账号,从用户管理模块12获取到包括相对应的用户显示名称、相对应的用户状态和相对应的用户身份在内的排序信息,对所述建立的用户数据队列中的各用户数组对象进行排序。针对用户数组对象而言,用户数据队列中的用户数组对象具有的属性信息皆包括:当前用户账号的信息、与当前用户相对应的用户的位置信息以及与当前用户相对应的用户所占据的大小信息。这里,针对与当前用户相对应的用户而言,根据当前用户帐号与用户号码列表的对应关系,使当前用户获取到创建多用户 会话讨论组所需的用户号码列表,那么与当前用户相对应的用户即为:当前用户创建多用户会话讨论组所需用户号码列表中的用户。当前用户相对应的用户所占据的大小信息是:采用统一的标准进行分配的,为固定的大小信息。
这里,主面板管理模块11还用于获取所述排序的用户数组对象中的第一个用户数组对象,将第一个用户数组对象的属性信息中的与当前用户相对应的用户的位置信息,确定为第一个用户数组对象的位置信息,也就是经排序后构成的用户数组队列中用户数据对象的初始位置信息;在第一个用户数组对象的位置信息基础上,累加上当前用户相对应的用户所占据的大小信息,依序计算出所述排序的用户数组对象中的其他用户数组对象的位置信息。这里,需要指出的是,由于当前用户相对应的用户所占据的大小信息为固定的大小信息,因此,只需要在经排序后构成的用户数组队列中用户数据对象的初始位置信息上进行所述大小信息的依次累加,即可得到所述排序的用户数组对象中的其他用户数组对象的位置信息。比如,所述排序的用户数组对象中的第二个用户数组对象的位置信息为:所述用户数据对象的初始位置信息累加上所述大小信息。所述排序的用户数组对象中的第三个用户数组对象的位置信息通过在之前得到的累加值,即所述用户数据对象的初始位置信息累加上所述大小信息获得的累加值基础上依次累加上所述大小信息来得到。
其中,主面板管理模块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消息时,说明当前用户松开了拖拽的鼠标操作,从而主面板管理模块11根据所述预选择的用户预测用户希望进行讨论组的创建,启动多用户会话讨论组的创建。
其中,主面板管理模块11还用于基于所述预选择的用户建立多用户会话讨论组中的用户号码列表;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所示,本实施例中创建多用户会话的流程包括以下步骤:
步骤101、用户成功登录IM客户端后,IM客户端根据当前用户的鼠标操 作和键盘控制操作完成多用户会话讨论组中用户的预选择,启动多用户会话讨论组的创建。
步骤101中,用户成功登录IM客户端的具体处理过程是通过IM客户端与IM服务器之间的交互完成的。具体来说,用户在IM客户端中输入用户账号和登录密码后,IM服务器对登录IM客户端的用户进行有效性验证的鉴权操作,如果用户鉴权通过,即通过IM服务器的有效性验证,则用户成功登录IM客户端;否则,IM客户端从IM服务器收到提示消息,以提示用户登录IM客户端失败。
步骤101中,IM客户端根据当前用户的鼠标操作和键盘控制操作完成多用户会话讨论组中用户的预选择的具体处理过程包括:
步骤1011、主面板管理模块通过当前用户账号获取到相对应的用户号码列表,根据用户号码列表,建立与当前用户相对应的用户数组队列。
这里,用户数组队列由用户数组对象构成,用户数组对象的属性信息包括:当前用户账号的信息、与当前用户相对应的用户的位置信息以及与当前用户相对应的用户所占据的大小信息。需要对用户数组对象的属性信息进行初始化。
步骤1012、主面板管理模块通过当前用户账号,以及获取到的包括相对应的用户显示名称、相对应的用户状态和相对应的用户身份在内的排序信息,对所述建立的用户数据队列中的各用户数组对象进行排序。
步骤1013、主面板管理模块计算出用户数组队列中各用户数组对象的位置信息,并确定为显示在IM客户端的主面板中相对应的各预选择的用户的位置信息。
这里,用户数组对象的属性信息包括:当前用户账号的信息、与当前用户相对应的用户的位置信息以及与当前用户相对应的用户所占据的大小信息。那么,步骤1013中,主面板管理模块计算出用户数组队列中各用户数组对象的位置信息的具体处理过程为:主面板管理模块获取所述排序的用户数组对象中的第一个用户数组对象,将第一个用户数组对象的属性信息中的与当前用户相对应的用户的位置信息,确定为第一个用户数组对象的位置信息;在第一个用户 数组对象的位置信息基础上,依次累加上当前用户相对应的用户所占据的大小信息,依序计算出所述排序的用户数组对象中的其他用户数组对象的位置信息。
这里,需要指出的是,由于当前用户相对应的用户所占据的大小信息是采用统一的标准进行分配的,为固定的大小信息。因此,只需要在经排序后构成的用户数组队列中用户数据对象的初始位置信息上进行所述大小信息的依次累加,即可得到所述排序的用户数组对象中的其他用户数组对象的位置信息。比如,所述排序的用户数组对象中的第二个用户数组对象的位置信息为:所述用户数据对象的初始位置信息累加上所述大小信息。所述排序的用户数组对象中的第三个用户数组对象的位置信息通过在之前得到的累加值,即所述用户数据对象的初始位置信息累加上所述大小信息获得的累加值基础上依次累加上所述大小信息来得到。也就是说,主面板管理模块只需要确定能绘制在主面板区域中用户数组对象的初始位置信息、以及每个用户数组对象固定的大小信息,并按照步骤1012中用户数据队列中的各用户数组对象的排序,就可以计算出用户数组队列中各用户数组对象的位置。通过计算出的用户数组队列中各用户数组对象的位置,最终可以得到物理上显示在IM客户端的主面板区域中的用户位置。
步骤1014、主面板管理模块与windows消息管理模块交互,根据预选择的用户的位置信息、以及当前用户的鼠标操作和键盘控制操作确定所述预选择的用户。
这里,步骤1014的具体处理过程为:主面板管理模块从windows消息管理模块拦截windows消息来捕获当前用户的鼠标操作和键盘操作后,在判定键盘操作为键盘控制操作情况下,通过windows鼠标左键消息获取到当前用户的鼠标操作在IM客户端的主面板中的位置信息,遍历用户数组队列中各用户数组对象,并根据与当前用户的鼠标操作在IM客户端的主面板中的位置信息相匹配的用户数组对象的位置信息、所查找到的用户数组对象确定为所述预选择的用户。这里,所述键盘控制操作可以为当前用户按下键盘的键值为shift键的控制操作,也可以为当前用户按下键盘的键值为ctrl键的控制操作。
针对当前用户按下键盘的键值为shift键的控制操作而言,举例来说,主面板管理模块从windows消息管理模块拦截windows消息来捕获当前用户的鼠标操作和键盘操作后,通过windows API获取当前用户按下键盘的键值,判断该键值是否为Shift键,如果是,则通过windows鼠标左键消息获取到当前用户的鼠标操作在IM客户端的主面板中的位置信息,遍历用户数组队列中各用户数组对象,并根据与当前用户的鼠标操作在IM客户端的主面板中的位置信息相匹配的用户数组对象的位置信息、所查找到的用户数组对象确定为所述预选择的用户。否则,该键值不是Shift键,说明用户不属于多选,退出当前多用户会话讨论组的创建流程。
步骤101中,启动多用户会话讨论组的创建具体为:主面板管理模块注册、接收并响应windows消息管理模块发送的不同类型的windows拖拽消息;在接收到的windows拖拽消息为当前用户释放拖拽的鼠标左键消息,或者捕获到当前用户的鼠标操作超出IM客户端主面板的有效区域的情况下,启动多用户会话讨论组的创建。
这里,举例来说,windows拖拽消息包括DragMove,DragEnter以及DragLeave。那么当用户对所述预选择的用户选择完毕后,点击鼠标左键开始拖拽的时候,则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服务器不发送成功创建多用户会话讨论组的通知消息给处于拒绝访问状态的各用户。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (14)
1.一种创建多用户会话的***,包括即时通信IM服务器,其特征在于,该***还包括:IM客户端,所述IM客户端用于根据当前用户的鼠标操作、和/或键盘控制操作完成多用户会话讨论组中用户的预选择,并启动所述讨论组的创建;将预选择的用户发送到所述IM服务器,与所述IM服务器协商确定所述讨论组中的目标用户,完成所述讨论组的创建;其中,所述讨论组中的目标用户为所述预选择的用户的子集。
2.根据权利要求1所述的***,其特征在于,所述IM客户端包括主面板管理模块、用户管理模块和windows消息管理模块;其中,
主面板管理模块,用于通过当前用户账号从用户管理模块获取到相对应的用户号码列表,根据所述用户号码列表,建立与当前用户相对应的用户数组队列;计算出所述用户数组队列中各用户数组对象的位置信息,并确定为相对应的各预选择的用户的位置信息;与所述windows消息管理模块交互,根据所述预选择的用户的位置信息、以及当前用户的鼠标操作、和/或键盘控制操作确定所述预选择的用户;
用户管理模块,用于存储并管理用户的相关信息;
windows消息管理模块,用于管理windows消息,并与所述主面板管理模块交互,根据当前用户的鼠标操作、和/或键盘控制操作确定所述预选择的成员。
3.根据权利要求2所述的***,其特征在于,所述主面板管理模块,还用于注册、接收并响应所述windows消息管理模块发送的不同类型的windows拖拽消息;在接收到的所述windows拖拽消息为当前用户释放拖拽的鼠标左键消息,或者捕获到当前用户的鼠标操作超出所述IM客户端主面板的有效区域的情况下,启动所述讨论组的创建。
4.根据权利要求2至3中任一项所述的***,其特征在于,所述主面板管理模块,还用于基于所述预选择的用户建立所述讨论组中的用户号码列表;
所述IM客户端还包括讨论组管理模块,用于在所述主面板管理模块的调用下,从主面板管理模块获取所述讨论组中的用户号码列表;将所述讨论组中的用户号码列表和所述当前用户账号封装到创建讨论组请求中,发送给所述IM服务器进行用户个数上限的验证。
5.一种创建多用户会话的方法,其特征在于,该方法包括:
A、IM客户端根据当前用户的鼠标操作、和/或键盘控制操作完成多用户会话讨论组中用户的预选择,启动所述讨论组的创建;
B、所述IM客户端将预选择的用户发送到IM服务器,与所述IM服务器协商确定所述讨论组中的目标用户,以完成所述讨论组的创建;其中,所述讨论组中的目标用户为所述预选择的用户的子集。
6.根据权利要求5所述的方法,其特征在于,步骤A中,所述IM客户端根据当前用户的鼠标操作、和/或键盘控制操作完成多用户会话讨论组中用户的预选择具体为:
A1、主面板管理模块通过当前用户账号获取到相对应的用户号码列表,根据所述用户号码列表,建立与所述当前用户相对应的用户数组队列;
A2、所述主面板管理模块计算出所述用户数组队列中各用户数组对象的位置信息,并确定为相对应的各预选择的用户的位置信息;
A3、主面板管理模块与windows消息管理模块交互,根据所述预选择的用户的位置信息、以及所述当前用户的鼠标操作、和/或键盘控制操作确定所述预选择的用户。
7.根据权利要求6所述的方法,其特征在于,步骤A1后还包括:
所述主面板管理模块通过所述当前用户账号,以及获取到的包括相对应的用户显示名称、相对应的用户状态和相对应的用户身份在内的排序信息,对所述建立的用户数据队列中的各用户数组对象进行排序。
8.根据权利要求7所述的方法,其特征在于,所述用户数组对象的属性信息包括:所述当前用户账号的信息、与所述当前用户相对应的用户的位置信息以及与所述当前用户相对应的用户所占据的大小信息。
9.根据权利要求8所述的方法,其特征在于,步骤A2中,所述主面板管理模块计算出所述用户数组队列中各用户数组对象的位置信息具体为:
所述主面板管理模块获取所述排序的用户数组对象中的第一个用户数组对象,将所述第一个用户数组对象的属性信息中的所述与当前用户相对应的用户的位置信息,确定为第一个用户数组对象的位置信息;在第一个用户数组对象的位置信息基础上,依次累加上所述当前用户相对应的用户所占据的大小信息,依序计算出所述排序的用户数组对象中的其他用户数组对象的位置信息。
10.根据权利要求9所述的方法,其特征在于,步骤A3具体为:
所述主面板管理模块从所述windows消息管理模块拦截windows消息来捕获当前用户的鼠标操作、和/或键盘操作后,在判定所述键盘操作为所述键盘控制操作情况下,通过windows鼠标左键消息获取到所述当前用户的鼠标操作在所述IM客户端的主面板中的位置信息,遍历所述用户数组队列中各用户数组对象,并根据与所述当前用户的鼠标操作在IM客户端的主面板中的位置信息相匹配的用户数组对象的位置信息、所查找到的用户数组对象确定为所述预选择的用户。
11.根据权利要求6所述的方法,其特征在于,步骤A中,启动所述讨论组的创建具体为:
所述主面板管理模块注册、接收并响应所述windows消息管理模块发送的不同类型的windows拖拽消息;在接收到的所述windows拖拽消息为当前用户释放拖拽的鼠标左键消息,或者捕获到所述当前用户的鼠标操作超出所述IM客户端主面板的有效区域的情况下,启动所述讨论组的创建。
12.根据权利要求6至11中任一项所述的方法,其特征在于,步骤B具体为:
B1、基于所述预选择的用户建立所述讨论组中的用户号码列表,讨论组管理模块从所述主面板管理模块获取所述讨论组中的用户号码列表;将所述讨论组中的用户号码列表和所述当前用户账号封装到创建讨论组请求中,发送给IM服务器进行用户个数上限的验证;
B2、所述IM服务器提取出所述用户号码列表和所述当前用户账号,并相应于所述当前用户账号,在判定出所述用户号码列表中的用户个数大于服务器侧预设置的用户个数上限的情况下,下发创建失败的消息给所述讨论组管理模块;在判定出所述用户号码列表中的用户个数不大于服务器侧预设置的用户个数上限的情况下,将所生成唯一的讨论组标识号封装到创建成功的消息中下发给所述讨论组管理模块。
13.根据权利要求12所述的方法,其特征在于,步骤B2后还包括:
B3、所述讨论组管理模块提取出所述讨论组标识号,将所述讨论组标识号、所述讨论组中的用户号码列表封装到添加讨论组用户的请求中,发送给所述IM服务器;
B4、所述IM服务器提取出所述讨论组标识号和所述讨论组中的用户号码列表,相应于所述讨论组标识号,将所述讨论组中用户号码列表中的用户确定为所述讨论组中的目标用户并存储,以完成所述讨论组的创建。
14.根据权利要求13所述的方法,其特征在于,步骤B4后还包括:
B5、所述IM服务器根据所述讨论组中的用户号码列表查询IM状态服务器,查询并获取到所述讨论组中用户号码列表中各用户的状态信息;
B6、当查询到所述用户的状态信息为在线时,IM服务器将成功创建讨论组的通知消息下发给处于在线状态的各用户,使所述处于在线状态的各用户完成参与多用户的会话讨论,所述讨论组资料的更新和下载操作;或者,
当查询到用户的状态信息为不在线时,IM服务器不发送成功创建多用户会话讨论组的通知消息给处于不在线状态的各用户;或者,IM服务器将成功创建多用户会话讨论组的通知消息下发给处于不在线状态的各用户,由所述处于不在线状态的各用户恢复到在线状态时选择是否参与多用户的会话讨论;或者,
当查询到用户的状态信息为自定义状态时,IM服务器将成功创建多用户会话讨论组的通知消息下发给处于自定义状态的各用户,由所述处于自定义状态的各用户选择是否参与多用户的会话讨论。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101291437A CN101296200B (zh) | 2008-06-30 | 2008-06-30 | 一种创建多用户会话的***和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101291437A CN101296200B (zh) | 2008-06-30 | 2008-06-30 | 一种创建多用户会话的***和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101296200A CN101296200A (zh) | 2008-10-29 |
CN101296200B true CN101296200B (zh) | 2011-02-02 |
Family
ID=40066217
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101291437A Active CN101296200B (zh) | 2008-06-30 | 2008-06-30 | 一种创建多用户会话的***和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101296200B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101534207B (zh) * | 2009-04-13 | 2012-05-23 | 腾讯科技(深圳)有限公司 | 群组加入***及方法 |
CN102638420A (zh) * | 2012-05-08 | 2012-08-15 | 上海量明科技发展有限公司 | 即时通信中设置主题公示板的方法、客户端及*** |
CN104125133B (zh) * | 2013-04-27 | 2015-11-25 | 腾讯科技(深圳)有限公司 | 一种即时通讯应用中的会话通知方法、装置及*** |
US10079787B2 (en) | 2014-03-20 | 2018-09-18 | Xiaomi Inc. | Method and apparatus for creating group and exiting group |
CN103888344B (zh) * | 2014-03-20 | 2017-07-14 | 小米科技有限责任公司 | 群组创建方法、群组退出方法和装置 |
CN104935722A (zh) * | 2014-03-21 | 2015-09-23 | 华为技术有限公司 | 通信方法和ip电话终端 |
CN105139258A (zh) * | 2015-07-28 | 2015-12-09 | 小米科技有限责任公司 | 群组成员添加方法及装置 |
CN105096978B (zh) * | 2015-08-25 | 2017-11-24 | 广东欧珀移动通信有限公司 | 一种播放设备组的命名管理方法及终端 |
CN105915447A (zh) * | 2016-06-30 | 2016-08-31 | 珠海市魅族科技有限公司 | 一种多方会话建立方法及装置 |
CN106130879A (zh) * | 2016-06-30 | 2016-11-16 | 珠海市魅族科技有限公司 | 一种会话建立方法及装置 |
CN106850345B (zh) * | 2017-01-21 | 2020-11-06 | 厦门天锐科技股份有限公司 | 一种网络用户状态的监测及查询方法 |
CN109167668B (zh) * | 2018-07-25 | 2021-04-30 | 深圳市梦网科技发展有限公司 | 一种消息的通知方法、消息的通知装置及终端设备 |
CN108965111A (zh) * | 2018-08-02 | 2018-12-07 | 北京达佳互联信息技术有限公司 | 快速建立通信群组的方法、装置及移动终端及存储介质 |
CN109637225B (zh) * | 2018-12-20 | 2021-03-12 | 广东小天才科技有限公司 | 一种互动式学习方法及*** |
CN114064173A (zh) * | 2021-11-09 | 2022-02-18 | 广州博冠信息科技有限公司 | 即时会话页面创建方法、装置、介质及设备 |
CN114629867A (zh) * | 2022-03-22 | 2022-06-14 | 康键信息技术(深圳)有限公司 | 在线问诊即时通讯***和消息处理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1991727A (zh) * | 2005-12-28 | 2007-07-04 | 腾讯科技(深圳)有限公司 | 一种即时通讯用户主面板好友分组的排列定制方法 |
CN101026612A (zh) * | 2006-02-21 | 2007-08-29 | 腾讯科技(深圳)有限公司 | 在即时通讯工具中管理不同属性分组及其成员的方法 |
CN101127736A (zh) * | 2007-09-26 | 2008-02-20 | 腾讯科技(深圳)有限公司 | 一种即时通讯***及其处理子面板的方法 |
-
2008
- 2008-06-30 CN CN2008101291437A patent/CN101296200B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1991727A (zh) * | 2005-12-28 | 2007-07-04 | 腾讯科技(深圳)有限公司 | 一种即时通讯用户主面板好友分组的排列定制方法 |
CN101026612A (zh) * | 2006-02-21 | 2007-08-29 | 腾讯科技(深圳)有限公司 | 在即时通讯工具中管理不同属性分组及其成员的方法 |
CN101127736A (zh) * | 2007-09-26 | 2008-02-20 | 腾讯科技(深圳)有限公司 | 一种即时通讯***及其处理子面板的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101296200A (zh) | 2008-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101296200B (zh) | 一种创建多用户会话的***和方法 | |
US9720565B2 (en) | Instant messaging activity notification | |
CN105530175B (zh) | 一种消息处理方法、装置及*** | |
US20190349326A1 (en) | Sharing on-line media experiences | |
US7865563B2 (en) | Persisting a group in an instant messaging application | |
RU2513761C2 (ru) | Способ и сервер для мгновенного обмена сообщениями | |
CN107294908B (zh) | 即时通信应用中的账号信息处理方法、装置及*** | |
CA2690731C (en) | Method, system for controlling service access and server | |
CN105824875B (zh) | 一种照片共享方法及移动终端 | |
CN102780653B (zh) | 即时通信中快捷通信的方法、客户端及*** | |
US9563876B2 (en) | Control options for instant message display and notification | |
US20120124150A1 (en) | Intelligent network communication system and method | |
US8838803B2 (en) | Methods and apparatus for management of user presence in communication activities | |
CN110391970A (zh) | 用于通讯应用的消息管理***、方法、设备和存储介质 | |
CN107196852A (zh) | 即时通信方法和用户终端 | |
RU2569025C2 (ru) | Способ, серверное устройство, клиентское устройство и система для взаимодействия сетевых платформ | |
CN106506443A (zh) | 一种信息查看方法及装置 | |
JP2024009370A (ja) | 情報処理システム、情報処理方法及びプログラム | |
CN101247363A (zh) | 实现即时通讯消息弱提示的方法、客户端及*** | |
CN111555964A (zh) | 一种群组成员的管理方法、电子设备和存储介质 | |
KR20210116865A (ko) | 대화 서비스 제공 방법 및 장치 | |
WO2008026416A1 (fr) | Système de transmission/ réception de message | |
EP3073437B1 (en) | Method and apparatus for providing user intention expression service in communication system | |
CN107465705B (zh) | 一种数据处理方法及终端 | |
CN115129835A (zh) | 会话处理方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |