CN104580421A - 一种服务器及采用所述服务器的用户群组信息的推送方法 - Google Patents
一种服务器及采用所述服务器的用户群组信息的推送方法 Download PDFInfo
- Publication number
- CN104580421A CN104580421A CN201410828717.5A CN201410828717A CN104580421A CN 104580421 A CN104580421 A CN 104580421A CN 201410828717 A CN201410828717 A CN 201410828717A CN 104580421 A CN104580421 A CN 104580421A
- Authority
- CN
- China
- Prior art keywords
- user
- group
- information
- server
- subscription status
- 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.)
- Granted
Links
Landscapes
- Mobile Radio Communication Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明一种服务器包括一信息存储模块,其进一步包括:一用户信息表,用以记录用户号码及用户状态信息;一群组信息表,用以记录用户所在群组的群组名称及群组编号;一用户与群组关系表,用以记录用户号码、用户所在群组的群组名称及订阅状态信息;其中当服务器收到第一用户所发送的注册请求之后,服务器根据第一用户的用户号码更新用户信息表中的相应用户状态信息,并根据第一用户的用户号码为关键字以模糊匹配方式查询用户与群组关系表以获得群组编号;以及根据订阅状态信息和群组编号为关键字以模糊匹配方式查询用户与群组关系表以获得呈已订阅状态的用户,之后服务器根据呈已订阅状态的用户的用户号码发送通知消息至呈已订阅状态的用户。
Description
技术领域
本发明涉及数据通信技术领域,尤其涉及一种服务器及采用所述服务器的用户群组信息的推送方法。
背景技术
随着当前移动通信应用的广泛应用,涌现出许多希望在移动终端(例如智能手机)上实现对讲功能的需求,特别在一些特殊行业,例如出租车司机、交警、武警等需要实时通信的行业中,除了需要能够进行对讲功能之外,还需要对用户进行分组管理,以确保一些任务的顺利执行。
另外,在智能手机日益普及的情况下,在屏幕上能够实时显示群组内每个用户的状态也是很有必要的功能,这样可以使一个群组内的用户清楚地了解每一个组员的当前状态,例如是处于离线、或是处于在线、或处于忙碌、或处于正在发言等。(详细而言,如某一个组织有甲、乙、丙、丁4个用户,并且形成了A、B、C三个组。用户甲、用户乙、用户丙在A组中,用户甲、用户丁在B组中,用户甲、用户乙、用户丁在C组中,当用户甲在A组中会话时,用户A只需要关注用户乙和用户丙的用户状态信息即可)。为了实现这一功能,需要由中心系统监控每一用户的用户状态,并且实时地向需要了解这些用户状态的用户发送相关消息。一般情况下,由于群组数量和用户数量众多,用户的所在组关系也可能错综复杂,而且为了避免向不需要此类信息的用户发送冗余信息,因此,亟需一合理的数据结构存储方式,以精确方便地索引与某一个用户相关的群组,或与某一个群组相关的用户。
发明内容
本发明的目的在于,提供一种服务器,其能够提供合理的数据结构存储方式,以精确方便地索引与某一个用户相关的群组,或者与某一个群组相关的用户,从而在用户群组信息推送过程中,能够避免因发送冗余信息所造成占用带宽的问题。
为了实现上述目的,本发明提供了一种服务器,所述服务器包括一信息存储模块,所述信息存储模块进一步包括:一用户信息表,用以记录用户号码及相应的用户状态信息;一群组信息表,用以记录用户所在群组的群组名称及相应的群组编号;一用户与群组关系表,用以记录所述用户号码、所述用户所在群组的群组名称及相应的订阅状态信息;其中当所述服务器收到一第一用户所发送的注册请求之后,所述服务器根据所述第一用户的用户号码更新所述用户信息表中相应的用户状态信息,并且根据所述第一用户的用户号码为关键字以模糊匹配方式查询所述用户与群组关系表,以获得相应的群组编号;以及根据所述订阅状态信息和所获得相应的群组编号为关键字以模糊匹配方式查询所述用户与群组关系表,以获得相应呈已订阅状态的用户,之后所述服务器根据所述呈已订阅状态的用户的用户号码发送一通知消息至所述呈已订阅状态的用户。
作为可选的技术方案,所述群组信息表进一步包括一用于记录相应群组等级的优先级信息,所述优先级信息用以激活或禁止与群组相关的功能。
作为可选的技术方案,所述用户信息表中的用户号码具有唯一性,用于以所述用户号码为关键字查询所述用户信息表。
作为可选的技术方案,所述群组信息表中的群组编号具有唯一性,用于以所述群组编号为关键字查询所述群组信息表。
作为可选的技术方案,所述服务器进一步包括一会话发起协议移动性管理模块和一会话发起协议呈现服务模块;所述会话发起协议移动性管理模块和所述会话发起协议呈现服务模块分别用以接收第一用户的请求消息,并且调用所述信息存储模块和执行相应动作以更新所述信息存储模块中的相关信息,以及返回一响应消息至所述第一用户。
本发明的另一目的在于,提供一种用户群组信息的推送方法,采用上述服务器,所述方法包括以下步骤:(1)第一用户发送一注册请求至服务器;(2)所述服务器根据所述第一用户的用户号码更新用户信息表中相应的用户状态信息,并返回一响应消息至所述第一用户;(3)所述服务器根据所述第一用户的用户号码为关键字以模糊匹配方式查询用户与群组关系表,以获得相应的群组编号;(4)所述服务器根据订阅状态信息和所获得相应的群组编号为关键字以模糊匹配方式查询所述用户与群组关系表,以获得相应呈已订阅状态的用户;(5)所述服务器根据所述呈已订阅状态的用户的用户号码发送一通知消息至所述呈已订阅状态的用户。
作为可选的技术方案,所述服务器进一步包括一会话发起协议移动性管理模块和一会话发起协议呈现服务模块;所述方法在步骤(5)之后,进一步包括以下步骤:(6)所述第一用户发送一订阅请求至所述服务器;(7)所述服务器的会话发起协议呈现服务模块在接收到所述订阅请求之后,调用信息存储模块和执行相应动作以更新所述信息存储模块中的相关信息;(8)所述会话发起协议呈现服务模块返回一响应消息至所述第一用户。
作为可选的技术方案,所述方法在步骤(7)中进一步包括:(7.1)所述会话发起协议呈现服务模块调用所述信息存储模块以更新所述第一用户所在用户与群组关系表中的订阅状态信息;(7.2)所述信息存储模块根据所述第一用户所发送的订阅请求中相应用户所在群组的群组名称为关键字查询群组信息表,以获得相应的群组编号;(7.3)所述信息存储模块根据所述群组编号查询所述用户与群组关系表,以获得所述群组编号所对应的用户的用户号码;(7.4)所述信息存储模块根据所述群组编号所对应的用户的用户号码查询所述用户信息表,以获得所述群组编号所对应的用户的用户状态信息;(7.5)所述会话发起协议呈现服务模块根据所述信息存储模块所获得的用户状态信息通知所述第一用户;(7.6)所述第一用户接收所获得的用户状态信息,并且返回一响应消息至所述会话发起协议呈现服务模块。
作为可选的技术方案,在步骤(8)之后进一步包括以下步骤:(9)第一用户发送一新增群组的请求至所述会话发起协议呈现服务模块,其中所述新增群组的群组编号已记录于所述用户与群组关系表中;(10)所述会话发起协议呈现服务模块调用所述信息存储模块以执行相应动作,并且在第一用户加入至所述新增群组之后,通过所述信息存储模块以在所述用户与群组关系表中插入一相应记录;(11)所述信息存储模块根据所述订阅状态信息和所述新增群组的群组编号为关键字以模糊匹配方式查询所述用户与群组关系表,以获得新增群组中呈已订阅状态的用户;(12)所述会话发起协议呈现服务模块根据所述信息存储模块所获得的新增群组中呈已订阅状态的用户的用户号码发送一通知消息至所述新增群组中呈已订阅状态的用户。
本发明的优点在于,通过在所述服务器中设置用户信息表、群组信息表、用户与群组关系表以及相应的查询关键字的设定和模糊匹配方式的采纳,从而能够实现精确方便地索引与某一个用户相关的群组,或者与某一个群组相关的用户,以达到快速匹配和避免重复数据的效果。另外,所述用户信息表、群组信息表、用户与群组关系表不仅具有容易扩展的特点,而且能够更有效地利用空间,避免空间上的浪费。在所述用户信息表、群组信息表、用户与群组关系表其数据结构简单的情况下,可以进一步保证运算效率,并且在使用模糊匹配的算法支持下,可以高效地通过用户号码查找相关群组,或通过群组编号查找相关用户。
附图说明
图1是本发明一优选实施方式中所述服务器的架构示意图。
图2是本发明一优选实施方式中用户群组信息的推送方法的步骤流程图。
图3A是本发明第一实施例中所述用户群组信息的推送方法的信令交互示意图。
图3B是本发明第一实施例中所述用户群组信息的推送方法的信令交互示意图。
图4A是本发明第二实施例中所述用户群组信息的推送方法的信令交互示意图。
图4B是本发明第二实施例中所述用户群组信息的推送方法的信令交互示意图。
图4C是本发明第二实施例中所述用户群组信息的推送方法的信令交互示意图。
图5A是本发明第三实施例中所述用户群组信息的推送方法的信令交互示意图。
图5B是本发明第三实施例中所述用户群组信息的推送方法的信令交互示意图。
具体实施方式
下面结合附图对本发明提供的服务器及采用所述服务器的用户群组信息的推送方法的具体实施方式做详细说明。
图1绘示一种服务器的架构。在本发明一实施方式中,所述服务器100包括一信息存储模块110。所述信息存储模块110可以为一数据库,或者可以为用于存储数据的设备。所述信息存储模块110进一步包括:一用户信息表111,用以记录用户号码及相应的用户状态信息;一群组信息表112,用以记录用户所在群组的群组名称及相应的群组编号;一用户与群组关系表113,用以记录所述用户号码、所述用户所在群组的群组名称及相应的订阅状态信息。
其中所述用户信息表111如下所示:
字段名称 | 数据类型 | 注释 |
isdn | 字符串 | 用户号码,全局唯一,且不重复 |
state | 字节 | 用户当前状态信息 |
所述用户信息表111记录所有的用户信息,每一用户占用所述用户信息表111中的一条记录,每一条记录还包括用户状态信息,例如表示用户在线、离线、离开等,所述用户状态信息以字节表示。在其他实施方式中,所述用户信息表111还可以包括用户的补充信息,例如用户昵称、签名、头像地址和编号,以及邮箱等。在所述用户信息表111中,用户号码即isdn为关键字,通过关键字可以建立一种快速索引机制。在其他实施方式中,也可以采用树形结构或者其他结构,或者直接采用开源数据库的关键字建立方法,其目的是可以根据用户号码快速索引至相关记录。需注意的是,所述用户信息表111中的用户号码具有唯一性,用于以所述用户号码为关键字查询所述用户信息表111。
所述群组信息表112如下所示:
字段名称 | 数据类型 | 注释 |
groupid | 字节 | 群组编号,全局唯一,且不重复 |
name | 字符串 | 用户所在群组的群组名称 |
priority | 字节 | 群组的等级 |
所述群组信息表112记录所有的群组信息,每一条记录表示一个组,通过群组编号来标识。所述群组信息表112还记录用户所在群组的群组名称以及相应的优先级。优先级信息用于记录相关群组的等级,以激活或禁止与群组相关的功能,例如优先级高的群组具有更多的人数上限,或者优选级高的群组能够优先分配带宽资源,其中所述功能不限于此。在所述群组信息表112中,所述群组编号即groupid为关键字,通过关键字可以建立一种快速匹配记录的机制。需要注意的是,所述群组信息表112中的群组编号具有唯一性,用于以所述群组编号为关键字查询所述群组信息表112。
所述用户与群组关系表113如下所示:
字段名称 | 数据类型 | 注释 |
isdn | 字符串 | 用户号码 |
groupid | 字节 | 群组编号 |
substate | 字节 | 订阅状态 |
所述用户与群组关系表113用以表示所有用户与相应的群组关系。该表的关键字比较特殊,为了要实现快速查询与某一用户相关的群组或者与某一群组相关的用户,则需要进行模糊匹配。于是,可以采用isdn+groupid方式和groupid+isdn方式建立两个索引,亦即isdn+groupid方式是指相同isdn+不同groupid,groupid+isdn方式是指相同groupid+不同isdn,以精确方便地索引与某一个用户相关的群组,或与某一个群组相关的用户。详细而言,当需要通过用户号码查询相关群组时,可以采用isdn+groupid方式建立索引,并且通过模糊匹配方式查找出相应的多条匹配记录。当需要通过群组编号查询相关用户时,可以采用groupid+isdn方式建立索引,并且通过模糊匹配方式查找出相应的多条匹配记录。需要注意的是,若需要通过订阅状态来匹配出相应记录时,可以通过substate+groupid+isdn方式建立索引,然后通过模糊匹配方式查找出相应的匹配记录,于是能够获得呈已订阅状态的用户。
当所述服务器100上电时,可以通过读取预先设置数据的方式,按上述三个数据表的结构而生成相应的信息表,或者可以在所述服务器100运行期间根据业务需求动态地生成信息表或在信息表中插入相关的数据记录。
本发明通过在所述服务器100中设置用户信息表111、群组信息表112、用户与群组关系表113以及相应的查询关键字的设定和模糊匹配方式的采纳,从而能够实现精确方便地索引与某一个用户相关的群组,或者与某一个群组相关的用户,以达到快速匹配和避免重复数据的效果。另外,由于未对一用户可以加入多少个群组以及未对一群组中可以加入多少个用户进行限制,因此,本发明所述用户信息表111、群组信息表112、用户与群组关系表113具有容易扩展的特点。再者,现有技术使用数组的方式与本发明所述的关系表方式相比,像现有技术中使用数组有可能会产生数据冗余现象,例如一个组中只有1~2个用户,此时的数组长度若规定过长会导致空间上的浪费,若规定过短则不利于用户的扩展,而本发明所述用户信息表111、群组信息表112、用户与群组关系表113的数据结构能够更有效地利用空间,避免空间上的浪费。另外,在所述用户信息表111、群组信息表112、用户与群组关系表113其数据结构简单的情况下,可以进一步保证运算效率,并且在使用模糊匹配的算法支持下,可以高效地通过用户号码查找相关群组,或通过群组编号查找相关用户。
在本优选实施方式中,当所述服务器100收到一第一用户所发送的注册请求之后,所述服务器100根据所述第一用户的用户号码更新所述用户信息表111中相应的用户状态信息,并且根据所述第一用户的用户号码为关键字以模糊匹配方式查询所述用户与群组关系表113,以获得相应的群组编号;以及根据所述订阅状态信息和所获得相应的群组编号为关键字以模糊匹配方式查询所述用户与群组关系表113,以获得相应呈已订阅状态的用户,之后所述服务器100根据所述呈已订阅状态的用户的用户号码发送一通知消息至所述呈已订阅状态的用户。
可选的,所述服务器100可以进一步包括一会话发起协议移动性管理模块120(即SIPMM模块,SIP mobility management)和一会话发起协议呈现服务模块130(即SIPPS模块,SIP present service)。所述SIPMM模块120和所述SIPPS模块130分别用以接收第一用户的请求消息,并且调用所述信息存储模块110和执行相应动作以更新所述信息存储模块110中的相关信息,以及返回一响应消息至所述第一用户。
本发明的另一目的在于,提供一种用户群组信息的推送方法,采用上述服务器100。
参见图2所示,所述推送方法包括以下步骤:
步骤S210:第一用户发送一注册请求至服务器。
当第一用户开启其移动终端(例如手机,下文以手机为例,但本发明不限于手机)时,手机会自动发送一注册请求至服务器。
步骤S220:所述服务器根据所述第一用户的用户号码更新用户信息表中相应的用户状态信息,并返回一响应消息至所述第一用户。
所述服务器的SIPMM模块接收到第一用户的注册请求之后,自动调用所述信息存储模块,并且根据第一用户的用户号码更新所述用户信息表中的用户状态信息,例如第一用户的先前用户状态为0,当成功注册之后,第一用户的当前用户状态为1,即更新了所述用户信息表中state字段的值。所述SIPMM模块返回一响应消息至所述第一用户。
步骤S230:所述服务器根据所述第一用户的用户号码为关键字以模糊匹配方式查询用户与群组关系表,以获得相应的群组编号。
由于第一用户的用户状态发生变化,于是所述服务器自动触发一通知流程。此时,根据第一用户的用户号码为关键字,以模糊匹配方式查询所述用户与群组关系表,以获得相应的多个不同的群组编号。
步骤S240:所述服务器根据订阅状态信息和所获得相应的群组编号为关键字以模糊匹配方式查询所述用户与群组关系表,以获得相应呈已订阅状态的用户。
在获得相应的多个不同的群组编号的基础上,通过订阅状态信息和所获得相应的群组编号为关键字以模糊匹配方式查询所述用户与群组关系表,例如“1+1+%”、“1+2+%”、“1+3+%”(分别表示已订阅且群组编号为1、已订阅且群组编号为2、已订阅且群组编号为3),以获取相应呈已订阅状态的用户。
步骤S250:所述服务器根据所述呈已订阅状态的用户的用户号码发送一通知消息至所述呈已订阅状态的用户。
所述服务器在获得所有相应呈已订阅状态的用户的用户号码之后,分别发送一通知消息,以将第一用户的用户状态传送至所述呈已订阅状态的用户。
在其他实施例中,若在执行步骤S240时,所述服务器中未有其他用户开启手机进行注册,则所述用户与群组关系表中的所有substate字段(即表示订阅状态信息)均为0,模糊匹配无结果,于是所述服务器不会触发任何消息,也不会发送通知消息。
在本发明所述推送方法的优选实施方式中,所述服务器可以进一步包括一会话发起协议移动性管理模块和一会话发起协议呈现服务模块。所述推送方法在执行步骤S250之后,可以进一步包括以下步骤:
(a)所述第一用户发送一订阅请求至所述服务器。
在此步骤中,第一用户发送订阅请求,以便于在订阅某一群组之后,能够获得该群组内所有相关用户的消息。于是,所述第一用户可以通过手机的界面操作,以触发一订阅流程。
(b)所述服务器的会话发起协议呈现服务模块在接收到所述订阅请求之后,调用信息存储模块和执行相应动作以更新所述信息存储模块中的相关信息。
所述服务器的SIPPS模块在接收到所述订阅请求之后,调用所述信息存储模块,并且执行相应动作。
(c)所述会话发起协议呈现服务模块返回一响应消息至所述第一用户。
所述SIPPS模块在处理完毕之后,返回一订阅成功的响应消息至所述第一用户。
在上述步骤(b)之中,所述推送方法可以进一步包括以下步骤:
(b1)所述会话发起协议呈现服务模块调用所述信息存储模块以更新所述第一用户所在用户与群组关系表中的订阅状态信息。
即所述SIPPS模块调用所述信息存储模块,以更新所述信息存储模块中的第一用户所在用户与群组关系表中的订阅状态信息,即substate字段更新为1。
(b2)所述信息存储模块根据所述第一用户所发送的订阅请求中相应用户所在群组的群组名称为关键字查询群组信息表,以获得相应的群组编号。
在订阅成功之后,所述信息存储模块以相应用户所在群组的群组名称为关键字查询所述群组信息表。
(b3)所述信息存储模块根据所述群组编号查询所述用户与群组关系表,以获得所述群组编号所对应的用户的用户号码。
(b4)所述信息存储模块根据所述群组编号所对应的用户的用户号码查询所述用户信息表,以获得所述群组编号所对应的用户的用户状态信息。
其中所述用户状态信息包括在线、离线、离开等。在本发明所述推送方法的优选实施方式中,当用户注册成功之后,所述state字段更新为1。
(b5)所述会话发起协议呈现服务模块根据所述信息存储模块所获得的用户状态信息通知所述第一用户。
其中,所述SIPPS模块将所述信息存储模块所获得的用户状态信息(排除第一用户的用户状态信息)生成一数据包,并且将该数据包传送至所述第一用户,以告知所述第一用户相关信息。
(b6)所述第一用户接收所获得的用户状态信息,并且返回一响应消息至所述会话发起协议呈现服务模块。
其中,所述第一用户通过手机接收到的用户状态信息为不包括第一用户自身的用户状态信息。另外,将其他用户(不包括第一用户)的用户状态信息显示于第一用户的手机显示界面上。
在本发明所述推送方法的优选实施方式中,当执行上述步骤(c)之后,可以进一步包括以下步骤:
(d)第一用户发送一新增群组的请求至所述会话发起协议呈现服务模块,其中所述新增群组的群组编号已记录于所述用户与群组关系表中。
(e)所述会话发起协议呈现服务模块调用所述信息存储模块以执行相应动作,并且在第一用户加入至所述新增群组之后,通过所述信息存储模块以在所述用户与群组关系表中插入一相应记录。
在上述步骤(d)和(e)中,第一用户发送一新增群组的请求至SIPPS模块(或者其他实施方式中的第三方模块)之后,所述SIPPS模块(或者第三方模块)调用所述信息存储模块,以使所述第一用户通过主动方式或被动方式加入新增群组中。需注意的是,所述新增群组的群组编号已存在于所述用户与群组关系表中,其仅表示所述第一用户先前未属于该新增群组中。
(f)所述信息存储模块根据所述订阅状态信息和所述新增群组的群组编号为关键字以模糊匹配方式查询所述用户与群组关系表,以获得新增群组中呈已订阅状态的用户。
在此步骤中,根据“substate+groupid+isdn”索引方式进行模糊匹配,例如“1+1+%”,从而获得新增群组中所有呈已订阅状态的用户。
(g)所述会话发起协议呈现服务模块根据所述信息存储模块所获得的新增群组中呈已订阅状态的用户的用户号码发送一通知消息至所述新增群组中呈已订阅状态的用户。
以下将通过几个实施例进一步说明所述服务器中的用户信息表、群组信息表、用户与群组关系表的结构关系,以及进一步说明一种采用所述服务器的用户群组信息的推送方法的步骤过程。
下文中的几个实施例的数据仅是为了具体化地说明所述服务器和采用所述服务器的用户群组信息的推送方法,并不用于限定本发明。
假设一组织需要有甲、乙、丙、丁4个用户,且分成A、B、C三个组。其中用户甲、用户乙和用户丙在A组中,用户甲和用户丁在B组中,用户甲、用户乙和用户丁在A组中进行即时对讲。
首先配置三张数据表,分别如下所示:
所述用户信息表内容如下设置:
用户号码 | 用户 | 用户状态信息 |
4000 | 甲 | 0 |
5000 | 乙 | 0 |
6000 | 丙 | 0 |
7000 | 丁 | 0 |
其中state可以随着各种业务的进行而做相应的改变,一般情况下,state字段为0表示离线、1表示在线、2表示离开、3表示发言等。
所述群组信息表内容如下设置:
群组编号 | 群组名称 | 优先级信息 |
1 | A组 | 0 |
2 | B组 | 0 |
3 | C组 | 0 |
其中优先级信息表示群组的等级,用于实现某些定制业务的需求。
所述用户与群组关系表如下设置:
用户号码 | 群组编号 | 订阅状态信息 |
4000 | 1 | 0 |
5000 | 1 | 0 |
6000 | 1 | 0 |
4000 | 2 | 0 |
7000 | 2 | 0 |
4000 | 3 | 0 |
5000 | 3 | 0 |
7000 | 3 | 0 |
其中订阅状态信息用以表示该用户对该群组信息的订阅状态,例如0表示未订阅,1表示已订阅。于是,可以通过SIP消息交互而完成订阅与取消操作,从而灵活实现用户对某一组信息的订阅,且避免不必要的冗余信息的发送。
图3A和3B绘示本发明第一实施例中所述用户群组信息的推送方法的信令交互方式。
在第一实施例中,所述服务器在完成初始化状态之后完成上述三张数据表的配置。
首先当用户甲开启手机并进行注册时,该手机(如图3A所示的UE,用户终端)会发送一注册请求至所述服务器。
接着,所述服务器的SIPMM模块接收到用户甲的注册请求之后,自动调用所述信息存储模块,并且根据用户甲的用户号码(4000)更新所述用户信息表中的用户状态信息,例如用户甲的先前用户状态为0,当成功注册之后,用户甲的当前用户状态为1,即更新所述用户信息表中state字段的值。
用户号码 | 用户 | 用户状态信息 |
4000 | 甲 | 1 |
所述SIPMM模块返回一响应消息至用户甲,可参见图3A所示。
然后,所述服务器根据用户甲的用户号码(4000)为关键字以模糊匹配方式查询所述用户与群组关系表,获得三条记录。
用户号码 | 群组编号 | 订阅状态信息 |
4000 | 1 | 0 |
4000 | 2 | 0 |
4000 | 3 | 0 |
此时,循环遍历这三条记录,获取相应的群组编号。接着,所述服务器根据订阅状态信息和所获得相应的群组编号为关键字以模糊匹配方式查询所述用户与群组关系表,例如“1+1+%”、“1+2+%”、“1+3+%”(分别表示已订阅且群组编号为1、已订阅且群组编号为2、已订阅且群组编号为3),以获取相应呈已订阅状态的用户。
接着,所述服务器根据所述呈已订阅状态的用户的用户号码发送一通知消息至所述呈已订阅状态的用户。该通知消息为用户甲(4000)的用户状态发生了变化。
由于此时其他用户均未开启手机进行注册,因此所述用户与群组关系表中的substate字段均0,模糊匹配不会有结果,以至所述服务器不会触发任何消息,亦即不会发送通知消息。
若用户甲需要能够实时获取A组的信息,则用户甲可以通过手机的界面操作,以触发一订阅流程。该订阅流程具体如下:
(a)用户甲发送一订阅请求至所述服务器。
在此步骤中,用户甲发送订阅请求,以便于在订阅A组之后,能够获得A组内所有相关用户的消息。于是,用户甲可以通过手机的界面操作,以触发一订阅流程。
(b)所述服务器的SIPPS模块在接收到订阅请求之后,调用信息存储模块和执行相应动作以更新所述信息存储模块中的相关信息。
(c)所述SIPPS模块返回一响应消息至用户甲。
所述SIPPS模块在处理完毕之后,返回一订阅成功的响应消息至用户甲。
在上述步骤(b)之中,所述推送方法可以进一步包括以下步骤:
(b1)所述SIPPS模块调用所述信息存储模块以更新用户甲所在用户与群组关系表中的订阅状态信息。
即所述SIPPS模块调用所述信息存储模块,以更新所述信息存储模块中的用户甲所在用户与群组关系表中的订阅状态信息,即substate字段更新为1,如下所示:
用户号码 | 群组编号 | 订阅状态信息 |
4000 | 1 | 1 |
(b2)所述信息存储模块根据用户甲所发送的订阅请求中相应用户所在群组的群组名称为关键字查询群组信息表,以获得相应的群组编号。
在用户甲订阅A组成功之后,所述信息存储模块以用户甲所在A组的群组名称(A组)为关键字查询所述群组信息表,从而获得A组所对应的群组编号为1,如下所示:
群组编号 | 群组名称 | 优先级信息 |
1 | A组 | 0 |
(b3)所述信息存储模块根据群组编号(此处群组编号为1)查询所述用户与群组关系表,以获得A组内所有用户及其用户号码。
用户号码 | 群组编号 | 订阅状态信息 |
4000 | 1 | 1 |
5000 | 1 | 0 |
6000 | 1 | 0 |
(b4)所述信息存储模块根据每一个用户的用户号码(此处用户号码分别为4000、5000、6000)查询所述用户信息表,以获得每一用户(4000、5000、6000)的用户状态信息。
其中所述用户状态信息包括在线、离线、离开等。在本发明所述推送方法的优选实施方式中,当用户甲注册成功时,所述state字段更新为1。此时,除了用户甲(4000)的用户状态信息为1之外,其他用户(5000、6000)的用户状态信息为0,即表示还未注册,如下所示:
用户号码 | 用户 | 用户状态信息 |
4000 | 甲 | 1 |
5000 | 乙 | 0 |
6000 | 丙 | 0 |
(b5)所述SIPPS模块根据所述信息存储模块所获得的用户状态信息通知用户甲。
其中,所述SIPPS模块将所获得的用户状态信息(排除用户甲的用户状态信息)生成一数据包,并且将该数据包传送至用户甲,以告知用户甲关于其他用户(例如用户乙、用户丙)的用户状态信息,参见图3B所示。
(b6)用户甲接收其他用户(5000、6000)的用户状态信息,并且返回一通知成功的响应消息至所述SIPPS模块。
其中,用户甲通过手机接收到不包括用户甲的其他用户(5000、6000)的用户状态信息。进一步,将其他用户(5000、6000)的用户状态信息(例如离线)显示于用户甲的手机的显示界面上。
图4A、4B、4C绘示本发明第二实施例中所述用户群组信息的推送方法的信令交互方式。
需注意的是,本发明第二实施例是包含上述第一实施例内容的另一实施例。所述第二实施例用以进一步说明当用户甲开启手机进行注册且完成订阅操作之后且用户乙进行开启手机进行注册操作时,用户群组信息的推送情况。
首先当用户乙开启手机并进行注册时,该手机(如图4A所示的UE,用户终端)会发送一注册请求至所述服务器。
接着,所述服务器的SIPMM模块接收到用户乙的注册请求之后,自动调用所述信息存储模块,并且根据用户乙的用户号码(5000)更新所述用户信息表中的用户状态信息,例如用户乙的先前用户状态为0,当成功注册之后,用户乙的当前用户状态为1,即更新所述用户信息表中state字段的值。
用户号码 | 用户 | 用户状态信息 |
5000 | 乙 | 1 |
所述SIPMM模块返回一响应消息至用户乙,可参见图4A所示。
然后,所述服务器根据用户乙的用户号码(5000)为关键字以模糊匹配方式查询所述用户与群组关系表,获得二条记录。
用户号码 | 群组编号 | 订阅状态信息 |
5000 | 1 | 0 |
5000 | 3 | 0 |
此时,循环遍历这两条记录,获取相应的群组编号。接着,所述服务器根据订阅状态信息和所获得相应的群组编号为关键字以模糊匹配方式查询所述用户与群组关系表,例如“1+1+%”、“1+3+%”(分别表示已订阅且群组编号为1、已订阅且群组编号为3),以获取相应呈已订阅状态的用户。
接着,所述服务器根据所述呈已订阅状态的用户的用户号码发送一通知消息至所述呈已订阅状态的用户。该通知消息为用户乙(5000)的用户状态发生了变化。
根据所述用户与群组关系表的当前状态,由于用户甲已订阅了A组(即群组编号为1),因此,通过“1+1+%”模糊匹配方式在所述用户与群组关系表查找到以下记录,如下所示:
用户号码 | 群组编号 | 订阅状态信息 |
4000 | 1 | 1 |
于是,在获取已订阅状态的用户甲(4000)的用户号码之后,所述服务器的SIPPS模块自动发送一通知消息至用户甲,可参见图4B所示。
用户甲在更新A组信息之后,能够发现用户乙处于在线状态。之后,用户甲返回一通知成功的响应消息至所述SIPPS模块。
接着,用户乙需要能够实时获取A组的信息,则用户乙可以通过手机的界面操作,以触发一订阅流程。该订阅流程具体如下:
(a)用户乙发送一订阅请求至所述服务器。
在此步骤中,用户乙发送订阅请求,以便于在订阅A组之后,能够获得A组内所有相关用户的消息。于是,用户乙可以通过手机的界面操作,以触发一订阅流程。
(b)所述服务器的SIPPS模块在接收到订阅请求之后,调用信息存储模块和执行相应动作以更新所述信息存储模块中的相关信息。
(c)所述SIPPS模块返回一响应消息至用户乙。
上述的订阅流程的具体说明可以参考本发明第一实施例的描述,在此不再赘述。本发明第二实施例中的所述信息存储模块的操作与第一实施例的情况类似,在用户乙订阅A组之后,所述服务器会将A组内所有相关用户的用户状态信息生成一数据包,并且将该数据包发送至用户乙,并且更新所述信息存储模块中的用户乙所在用户与群组关系表中的订阅状态信息,即substate字段更新为1,如下所示:
用户号码 | 群组编号 | 订阅状态信息 |
5000 | 1 | 1 |
图5A、5B绘示本发明第三实施例中所述用户群组信息的推送方法的信令交互方式。
需注意的是,本发明第三实施例是包含上述第二实施例内容的再一实施例。所述第三实施例用以进一步说明当用户乙开启手机进行注册且完成订阅操作之后且用户丁进行开启手机进行注册操作时,用户群组信息的推送情况。
首先当用户丁开启手机并进行注册时,该手机(如图5A所示的UE,用户终端)会发送一注册请求至所述服务器。
接着,所述服务器的SIPMM模块接收到用户丁的注册请求之后,自动调用所述信息存储模块,并且根据用户丁的用户号码(7000)更新所述用户信息表中的用户状态信息,例如用户丁的先前用户状态为0,当成功注册之后,用户丁的当前用户状态为1,即更新所述用户信息表中state字段的值。
用户号码 | 用户 | 用户状态信息 |
7000 | 丁 | 1 |
所述SIPMM模块返回一响应消息至用户丁,可参见图5A所示。
然后,所述服务器根据用户丁的用户号码(7000)为关键字以模糊匹配方式查询用户与群组关系表,获得二条记录。
用户号码 | 群组编号 | 订阅状态信息 |
7000 | 2 | 0 |
7000 | 3 | 0 |
此时,循环遍历这两条记录,获取相应的群组编号。接着,所述服务器根据订阅状态信息和所获得相应的群组编号为关键字以模糊匹配方式查询所述用户与群组关系表,例如“1+2+%”、“1+3+%”(分别表示已订阅且群组编号为2、已订阅且群组编号为3),以获取相应呈已订阅状态的用户。若获取到呈已订阅状态的用户,则所述服务器根据所述呈已订阅状态的用户的用户号码发送一通知消息至所述呈已订阅状态的用户。该通知消息为用户丁(7000)的用户状态发生了变化。
然而,根据所述用户与群组关系表的当前状态,并未发现有订阅B组(即群组编号为2)和订阅C组(即群组编号为3)的用户,于是所述服务器不发送通知消息。
若当用户丁加入A组之后,所述用户群组信息的推送方法可以进一步包括以下步骤:
(d)用户丁发送一新增群组(此处新增群组为A组)的请求至所述SIPPS模块,其中所述新增群组的群组编号(A组的群组编号为1)已记录于所述用户与群组关系表中。
(e)所述SIPPS模块调用所述信息存储模块以执行相应动作,并且在用户丁加入A组之后,通过所述信息存储模块以在所述用户与群组关系表中插入一相应记录,如下所示:
用户号码 | 群组编号 | 订阅状态信息 |
7000 | 1 | 0 |
在上述步骤(d)和(e)中,用户丁发送一新增群组的请求至SIPPS模块(或者为其他实施方式中的第三方模块)之后,所述SIPPS模块(或者第三方模块)调用所述信息存储模块,以使用户丁可以通过主动方式或被动方式加入A组之中。需注意的是,所述新增群组的群组编号(此处新增群组为A组,且A组的群组编号为1)已记录于所述用户与群组关系表中,其仅表示用户丁先前未属于该新增群组中,用户丁先前仅属于B组和C组。
(f)所述信息存储模块根据所述订阅状态信息和所述新增群组的群组编号为关键字以模糊匹配方式查询所述用户与群组关系表,以获得新增群组中呈已订阅状态的用户。
当用户丁加入新增群组(即新增群组为A组)且在所述用户与群组关系表中插入一相应记录之后,所述服务器会触发一查询流程,以通知新增群组内所有呈已订阅状态的用户。
根据“substate+groupid+isdn”索引方式进行模糊匹配,即“1+1+%”,从而获得新增群组中所有呈已订阅状态的用户,如下所示:
用户号码 | 群组编号 | 订阅状态信息 |
4000 | 1 | 1 |
5000 | 1 | 1 |
(g)所述SIPPS模块根据所述信息存储模块所获得的新增群组中呈已订阅状态的用户的用户号码发送一通知消息至所述新增群组中呈已订阅状态的用户。
根据查询结果,所述SIPPS模块对新增群组(即新增群组为A组)中呈已订阅状态的用户甲(4000)和用户乙(5000)分别发送一通知消息,以告知用户甲和用户乙关于用户丁的用户状态信息已更新,可参见图5B所示。
本发明所述服务器及采用所述服务器的用户群组信息的推送方法能够提供合理的数据结构存储方式,以精确方便地索引与某一个用户相关的群组,或者与某一个群组相关的用户,从而在用户群组信息推送过程中,能够避免因发送冗余信息所造成占用带宽的问题。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (9)
1.一种服务器,其特征在于,包括:一信息存储模块,所述信息存储模块进一步包括:
一用户信息表,用以记录用户号码及相应的用户状态信息;
一群组信息表,用以记录用户所在群组的群组名称及相应的群组编号;
一用户与群组关系表,用以记录所述用户号码、所述用户所在群组的群组名称及相应的订阅状态信息;
其中当所述服务器收到一第一用户所发送的注册请求之后,所述服务器根据所述第一用户的用户号码更新所述用户信息表中相应的用户状态信息,并且根据所述第一用户的用户号码为关键字以模糊匹配方式查询所述用户与群组关系表,以获得相应的群组编号;以及根据所述订阅状态信息和所获得相应的群组编号为关键字以模糊匹配方式查询所述用户与群组关系表,以获得相应呈已订阅状态的用户,之后所述服务器根据所述呈已订阅状态的用户的用户号码发送一通知消息至所述呈已订阅状态的用户。
2.根据权利要求1所述的服务器,其特征在于,所述群组信息表进一步包括一用于记录相应群组等级的优先级信息,所述优先级信息用以激活或禁止与群组相关的功能。
3.根据权利要求1所述的服务器,其特征在于,所述用户信息表中的用户号码具有唯一性,用于以所述用户号码为关键字查询所述用户信息表。
4.根据权利要求1所述的服务器,其特征在于,所述群组信息表中的群组编号具有唯一性,用于以所述群组编号为关键字查询所述群组信息表。
5.根据权利要求1所述的服务器,其特征在于,所述服务器进一步包括一会话发起协议移动性管理模块和一会话发起协议呈现服务模块;所述会话发起协议移动性管理模块和所述会话发起协议呈现服务模块分别用以接收第一用户的请求消息,并且调用所述信息存储模块和执行相应动作以更新所述信息存储模块中的相关信息,以及返回一响应消息至所述第一用户。
6.一种用户群组信息的推送方法,采用权利要求1所述的服务器,其特征在于,所述方法包括以下步骤:
(1)第一用户发送一注册请求至服务器;
(2)所述服务器根据所述第一用户的用户号码更新用户信息表中相应的用户状态信息,并返回一响应消息至所述第一用户;
(3)所述服务器根据所述第一用户的用户号码为关键字以模糊匹配方式查询用户与群组关系表,以获得相应的群组编号;
(4)所述服务器根据订阅状态信息和所获得相应的群组编号为关键字以模糊匹配方式查询所述用户与群组关系表,以获得相应呈已订阅状态的用户;
(5)所述服务器根据所述呈已订阅状态的用户的用户号码发送一通知消息至所述呈已订阅状态的用户。
7.根据权利要求6所述的用户群组信息的推送方法,其特征在于,所述服务器进一步包括一会话发起协议移动性管理模块和一会话发起协议呈现服务模块;所述方法在步骤(5)之后,进一步包括以下步骤:
(6)所述第一用户发送一订阅请求至所述服务器;
(7)所述服务器的会话发起协议呈现服务模块在接收到所述订阅请求之后,调用信息存储模块和执行相应动作以更新所述信息存储模块中的相关信息;
(8)所述会话发起协议呈现服务模块返回一响应消息至所述第一用户。
8.根据权利要求7所述的用户群组信息的推送方法,其特征在于,所述方法在步骤(7)中进一步包括以下步骤:
(7.1)所述会话发起协议呈现服务模块调用所述信息存储模块以更新所述第一用户所在用户与群组关系表中的订阅状态信息;
(7.2)所述信息存储模块根据所述第一用户所发送的订阅请求中相应用户所在群组的群组名称为关键字查询群组信息表,以获得相应的群组编号;
(7.3)所述信息存储模块根据所述群组编号查询所述用户与群组关系表,以获得所述群组编号所对应的用户的用户号码;
(7.4)所述信息存储模块根据所述群组编号所对应的用户的用户号码查询所述用户信息表,以获得所述群组编号所对应的用户的用户状态信息;
(7.5)所述会话发起协议呈现服务模块根据所述信息存储模块所获得的用户状态信息通知所述第一用户;
(7.6)所述第一用户接收所获得的用户状态信息,并且返回一响应消息至所述会话发起协议呈现服务模块。
9.根据权利要求8所述的用户群组信息的推送方法,其特征在于,在步骤(8)之后进一步包括以下步骤:
(9)第一用户发送一新增群组的请求至所述会话发起协议呈现服务模块,其中所述新增群组的群组编号已记录于所述用户与群组关系表中;
(10)所述会话发起协议呈现服务模块调用所述信息存储模块以执行相应动作,并且在第一用户加入至所述新增群组之后,通过所述信息存储模块以在所述用户与群组关系表中插入一相应记录;
(11)所述信息存储模块根据所述订阅状态信息和所述新增群组的群组编号为关键字以模糊匹配方式查询所述用户与群组关系表,以获得新增群组中呈已订阅状态的用户;
(12)所述会话发起协议呈现服务模块根据所述信息存储模块所获得的新增群组中呈已订阅状态的用户的用户号码发送一通知消息至所述新增群组中呈已订阅状态的用户。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410828717.5A CN104580421B (zh) | 2014-12-22 | 2014-12-22 | 一种服务器及采用所述服务器的用户群组信息的推送方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410828717.5A CN104580421B (zh) | 2014-12-22 | 2014-12-22 | 一种服务器及采用所述服务器的用户群组信息的推送方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104580421A true CN104580421A (zh) | 2015-04-29 |
CN104580421B CN104580421B (zh) | 2018-12-07 |
Family
ID=53095578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410828717.5A Active CN104580421B (zh) | 2014-12-22 | 2014-12-22 | 一种服务器及采用所述服务器的用户群组信息的推送方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104580421B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106209601A (zh) * | 2016-07-29 | 2016-12-07 | 腾讯科技(深圳)有限公司 | 状态更新消息的推送方法及装置 |
WO2017067374A1 (zh) * | 2015-10-22 | 2017-04-27 | 中兴通讯股份有限公司 | 一种消息推送方法及推送服务器 |
CN110365498A (zh) * | 2019-06-28 | 2019-10-22 | 武汉市怀信广志信息科技有限公司 | 一种群组新建及消息交互方法和系统 |
WO2019205555A1 (zh) * | 2018-04-23 | 2019-10-31 | 天津字节跳动科技有限公司 | 消息推送方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101170749A (zh) * | 2007-12-05 | 2008-04-30 | 华为技术有限公司 | 一种实现对wap群组差异化服务的方法和wap网关 |
CN101374261A (zh) * | 2007-08-22 | 2009-02-25 | 华为技术有限公司 | 实现铃音播放的方法、系统及相关设备 |
US20140351351A1 (en) * | 2013-05-21 | 2014-11-27 | Thinkwaresystems Corp. | Electronic device, server, and control method and location information providing method for the electronic device |
-
2014
- 2014-12-22 CN CN201410828717.5A patent/CN104580421B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101374261A (zh) * | 2007-08-22 | 2009-02-25 | 华为技术有限公司 | 实现铃音播放的方法、系统及相关设备 |
CN101170749A (zh) * | 2007-12-05 | 2008-04-30 | 华为技术有限公司 | 一种实现对wap群组差异化服务的方法和wap网关 |
US20140351351A1 (en) * | 2013-05-21 | 2014-11-27 | Thinkwaresystems Corp. | Electronic device, server, and control method and location information providing method for the electronic device |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017067374A1 (zh) * | 2015-10-22 | 2017-04-27 | 中兴通讯股份有限公司 | 一种消息推送方法及推送服务器 |
CN106612300A (zh) * | 2015-10-22 | 2017-05-03 | 中兴通讯股份有限公司 | 一种消息推送方法及推送服务器 |
CN106209601A (zh) * | 2016-07-29 | 2016-12-07 | 腾讯科技(深圳)有限公司 | 状态更新消息的推送方法及装置 |
CN106209601B (zh) * | 2016-07-29 | 2020-11-10 | 腾讯科技(深圳)有限公司 | 状态更新消息的推送方法及装置 |
WO2019205555A1 (zh) * | 2018-04-23 | 2019-10-31 | 天津字节跳动科技有限公司 | 消息推送方法及装置 |
CN110365498A (zh) * | 2019-06-28 | 2019-10-22 | 武汉市怀信广志信息科技有限公司 | 一种群组新建及消息交互方法和系统 |
CN110365498B (zh) * | 2019-06-28 | 2021-07-06 | 武汉广志信息科技股份有限公司 | 一种群组新建及消息交互方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104580421B (zh) | 2018-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109803242B (zh) | 通过nrf进行nf发现的方法、设备及可读存储介质 | |
CN104113466A (zh) | 一种骚扰电话的识别方法、客户端、服务器及系统 | |
CN101742004B (zh) | 多呼叫中心系统中呼叫转接的方法和装置 | |
WO2008104131A1 (fr) | Procédé, appareil et système de recherche et de téléchargement d'un fichier de téléphone mobile | |
CN106557742A (zh) | 群组建立和管理方法及系统 | |
CN104580421A (zh) | 一种服务器及采用所述服务器的用户群组信息的推送方法 | |
CN101313626A (zh) | 一种组呼方法、组呼寄存器及组呼系统 | |
CN102611799A (zh) | 联系人号码的获取方法、装置及系统 | |
CN102870440A (zh) | 一种呼叫转接的方法、装置和系统 | |
CN104348941B (zh) | 一种利用手机通讯录查找期望用户的方法及装置 | |
CN102158616B (zh) | 融合电信网和互联网的通信系统及方法 | |
CN100371931C (zh) | 一种实现对数据库快速访问的方法 | |
CN102202267B (zh) | 呼叫方法及设备、以及通信系统 | |
CN104917906A (zh) | 信息获取方法、信息推荐方法、电子设备及网络服务器 | |
EP2713550B1 (en) | Centralized online charging method and equipment | |
CN101552695B (zh) | 一种跨多专业网的统一网络管理方法及系统 | |
CN101378540B (zh) | 号码可携带业务实现方法、系统及号码可携带数据库 | |
CN102801877B (zh) | 一种无需ivr的虚拟总机业务实现方法和系统 | |
CN103166967B (zh) | 无中心交换通信系统及其通信方法 | |
US8498401B2 (en) | Mobile-to-mobile call determination | |
CN108347373B (zh) | 一种企业app实现即时通信的方法及系统 | |
CN101741889A (zh) | 一种网络服务集中管理的方法、系统及服务器 | |
CN101707766A (zh) | 号码携带业务的查询方法、装置以及系统 | |
CN1233142C (zh) | 一种用短消息查询智能网用户余额的方法 | |
CN1602083A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |