一种用户状态同步的方法及系统的制作方法

文档序号:7549867阅读:147来源:国知局
专利名称:一种用户状态同步的方法及系统的制作方法
技术领域
本发明属于即时通信领域,尤其涉及一种用户状态同步的方法及系统。
背景技术
随着信息社会的飞速发展,各种各样的通信工具如飞信、QQ等被人们普遍使用,除了个人应用以外,一些企业版的即时通信方式也逐渐为大众所熟悉,譬如云平台的视频会议。在日常应用中,会有大量的不同参会人员不停上线下线,由于通信服务器与数据库之间传输数据需要一定时间,会出现通讯服务器缓存中在线人员和数据库中用户状态不一致的现象,给视频会议使用者带来了极大的干扰。

发明内容
本发明提供一种用户状态同步的方法及系统以解决上述问题。本发明提供一种用户状态同步的方法,包括以下步骤。用户解析器存储用户与数据库对应关系表,其中,每个数据库位于对应的通信服务器中。所述用户解析器接收并解析所述用户的连接请求,根据其存储的用户与数据库对应关系表,将所述用户分配至对应的通信服务器,进行通信。所述通信服务器接收控制器发送的更新指令后,所述通信服务器的用户状态列表进入阻塞模式,所述通信服务器将用户状态列表中的用户状态更新到其内部数据库的备用字段。若所述通信服务器在第一预设时间内未将所述用户状态更新到所述备用字段,所述通信服务器根据自身存储的第一策略处理待处理用户状态列表中的待处理用户状态,并将处理后的用户状态更新到其内部数据库的真实字段。若所述通信服务器在第二预设时间内将所述用户状态列表中的所述用户状态成功更新到所述备用字段,所述通信服务器通知所述控制器,所述控制器向所述通信服务器发送同步指令,所述通信服务器根据所述同步指令将其内部数据库中的所述备用字段同步到真实字段后,所述控制器向通信服务器发送解锁指令,所述通信服务器根据所述解锁指令将所述用户状态列表解除阻塞模式。本发明提供一种用户状态同步的系统,包括控制器、用户解析器及至少一个通信服务器,所述控制器连接所述通信服务器,所述通信服务器连接所述用户解析器。所述控制器,用于向通信服务器发送更新指令,并根据所述通信服务器的通知,向通信服务器发送同步指令,并于所述通信服务器将其内部数据库中的所述备用字段同步到真实字段后,向通信服务器发送解锁指令。所述用户解析器,用于存储用户与数据库对应关系表,其中,每个数据库位于对应的通信服务器中;还用于接收并解析所述用户的连接请求,根据其存储的用户与数据库对应关系表,将所述用户分配至对应的通信服务器,进行通信。所述通信服务器,用于接收控制器发送的更新指令后使用户状态列表进入阻塞模式,并将用户状态列表中的用户状态更新到其内部数据库的备用字段,还用于若在第一预设时间内未将所述用户状态更新到所述备用字段,根据自身存储的第一策略处理待处理用户状态列表中的待处理用户状态,并将处理后的用户状态更新到数据库的真实字段,且若在第二预设时间内将所述用户状态列表中的所述用户状态成功更新到所述备用字段,通知所述控制器,并根据控制器发送的解锁指令将所述用户状态列表解除阻塞模式。相较于先前技术,根据本发明提供的用户状态同步的方法及系统,用户解析器存储用户与数据库对应关系表,其中每个数据库位于对应的通信服务器中。用户解析器接收并解析用户的连接请求,根据其存储的用户与数据库对应关系表,将用户分配至对应的通信服务器进行通信。通信服务器接收控制器发送的更新指令后,通信服务器的用户状态列表进入阻塞模式,通信服务器将用户状态列表中的用户状态更新到其内部数据库的备用字段。通信服务器仅更新自身的内部数据库,提高了数据库更新效率。若通信服务器在第一预设时间内未将用户状态更新到备用字段,通信服务器根据自身存储的第一策略处理待处理用户状态列表中的待处理用户状态,并将处理后的用户状态更新到其内部数据库的真实字段。若通信服务器在第二预设时间内将用户状态列表中的用户状态成功更新到备用字段,通信服务器通知控制器,控制器向通信服务器发送同步指令,通信服务器根据同步指令将其内部数据库中的备用字段同步到真实字段后,控制器向通信服务器发送解锁指令,通信服务器根据解锁指令将用户 状态列表解除阻塞模式。如此,保证了通信服务器与内部数据库的用户状态一致,提高了视频会议的质量。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1所示为根据本发明的较佳实施例提供的用户状态同步的方法的流程图;图2所示为根据本发明的较佳实施例提供的用户状态同步的系统的示意图。
具体实施例方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。图1所示为根据本发明的较佳实施例提供的用户状态同步的方法的流程图。如图1所示,本发明的较佳实施例提供的用户状态同步的方法包括步骤IOf 105。步骤101:用户解析器存储用户与数据库对应关系表,其中,每个数据库位于对应的通信服务器中。具体而言,所述用户与数据库对应关系表包括用户名、数据库名称、通信服务器名称及地址的对应关系,具体格式例如下表所示。
用户名数据库名称通信服务器名称通信服务器地址
用户1、用户2及用户IP地址I
数据库I通信服务器I
3
用户4及用户5数据库2通信服务器2IP地址2步骤102:所述用户解析器接收并解析所述用户的连接请求,根据其存储的用户与数据库对应关系表,将所述用户分配至对应的通信服务器,进行通信。具体而言,所述用户的连接请求包含用户名,用户解析器解析用户的连接请求,获取所述用户名后,将所述用户分配至对应通信服务器,由所述通信服务器进行处理。步骤103:所述通信服务器接收控制器发送的更新指令后,所述通信服务器的用户状态列表进入阻塞模式,所述通信服务器将用户状态列表中的用户状态更新到其内部数据库的备用字段。具体而言,控制器向通信服务器发送更新指令的方式,可以为周期性发送或不定时发送,实际应用中根据需求可自行设定,然而对此本发明并不作限定。所述控制器向所述通信服务器发送更新指令前,先向所述通信服务器发送清零指令,所述通信服务器根据所述清零指令将其内部数据库中的所述备用字段清零。于此,所述通信服务器的用户状态列表进入阻塞模式后,不再处理新到达的待处理用户状态。步骤104:若所述通信服务器在第一预设时间内未将所述用户状态更新到所述备用字段,所述通信服务器根据自身存储的第一策略处理待处理用户状态列表中的待处理用户状态,并将处理后的用户状态更新到其内部数据库的真实字段。具体而言,所述第一策略为,所述通信服务器处理待处理用户状态列表中的每个待处理用户的方式为并发处理,且所述通信服务器处理每个待处理用户状态的时间均为第二预设时间。通信服务器在第二预设时间内处理待处理用户状态列表中的待处理用户状态的同时,将用户状态列表中的用户状态更新到所述通信服务器内部数据库的备用字段。于此,所述第二预设时间大于第一预设时间。若所述通信服务器在第一预设时间内将所述用户状态成功更新到所述备用字段,所述通信服务器通知控制器,所述控制器向所述通信服务器发送同步指令,所述通信服务器根据所述同步指令将所述备用字段同步到真实字段后,所述控制器向通信服务器发送解锁指令,所述通信服务器根据所述解锁指令将所述用户状态列表解除阻塞模式。于此,若存在多个通信服务器,当所有通信服务器将所述用户状态成功更新到所述备用字段,并通知控制器后,所述控制器再向所述多个通信服务器发送同步指令。步骤105:若所述通信服务器在第二预设时间内将所述用户状态列表中的所述用户状态成功更新到所述备用字段,所述通信服务器通知所述控制器,所述控制器向所述通信服务器发送同步指令,所述通信服务器根据所述同步指令将其内部数据库中的所述备用字段同步到真实字段后,所述控制器向通信服务器发送解锁指令,所述通信服务器根据所述解锁指令将所述用户状态列表解除阻塞模式。具体而言,在所述第二预设时间内,通信服务器根据控制器发送的同步指令将其内部数据库中的所述备用字段同步到真实字段后,所述通信服务器还在处理待处理用户状态列表中的待处理用户状态。直至第二预设时间结束时,通信服务器才将处理后的待处理用户状态更新到其内部数据库中的真实字段。如此,可确保通信服务器内部数据库中的真实字段对应最新的用户状态。若所述通信服务器在第二预设时间内未将所述用户状态成功更新到所述备用字段,所述通信服务器不再向所述控制器发送通知,且所述通信服务器自行解除所述用户状态列表的阻塞模式。此时,通信服务器可正常处理新到达的待处理用户状态。于此,本次数据库更新失败,控制器等待下一次向通信服务器发送更新指令。
举例而言,若按照用户与数据库对应关系表,用户1、用户2及用户3对应通信服务器I及其内部的数据库1,用户4及用户5对应通信服务器2及其内部的数据库2。用户解析器于2012年12月26日09:59:00接到用户1、2及3的连接请求,用户解析器根据自身存储的用户与数据库对应关系表,将用户1、2及3分配至通信服务器I进行登录。若通信服务器I及2于10:00:00接收到控制器的更新指令,所述通信服务器I及2的用户状态列表均进入阻塞模式,通信服务器I将自身用户状态列表中的用户状态(用户1、2及3均为上线状态)更新到数据库I中的备用字段,通信服务器2的用户状态列表中暂无用户,则无需更新,并直接通知控制器。若此时用户解析器接收到用户4及5的连接请求,并将用户4及5分配至通信服务器2的待处理用户状态列表。若第一预设时间为10秒,至10:00:10时,若通信服务器I还未将所述用户1、2及3的上线状态更新到备用字段,则通信服务器2根据自身存储的第一策略处理自身待处理用户状态列表中的待处理用户(用户4及5为上线状态),通信服务器I待处理用户状态列表中暂无待处理用户,无需处理。若第二预设时间为20秒,在10:00:10至10:00:30之间,所述通信服务器I将本地用户状态列表中用户1、2及3的上线状态更新到数据库I中的备用字段。通信服务器2在所述第二预设时间内,处理自身待处理用户状态列表中的用户4及5的上线状态。若在10:00:25时,通信服务器I将用户1、2及3的上线状态成功更新到数据库I中的备用字段并通知控制器,此时控制器已收到通信服务器2的通知。则控制器向通信服务器I和2发送同步指令,通信服务器I中的数据库I及通信服务器2中的数据库2根据所述同步指令将备用字段同步到真实字段,且通信服务器I和2根据控制器发送的解锁指令分别将自身用户状态列表解除阻塞模式。若在10:00:30时,通信服务器2将用户4和5的上线状态更新到数据库2的真实字段,此时数据库I的真实字段用户状态为,用户1、2及3为上线状态,数据库2的真实字段用户状态为,用户4及5为上线状态。反之,若直到10:00:30时,通信服务器I还未将用户1、2及3的上线状态更新到数据库I中的备用字段,则本次用户状态同步失败,当控制器下一次向通信服务器发送更新指令时,重新开始同步。通信服务器2在10:00:30将用户4和5的上线状态更新到数据库2的真实字段。此时数据库I的真实字段用户状态为,用户1、2及3为本次同步前的状态(即下线状态),数据库2的真实字段用户状态为,用户4及5为上线状态。图2所示为根据本发明的较佳实施例提供的用户状态同步的系统的示意图。如图2所示,本发明的较佳实施例提供的用户状态同步的系统包括控制器201、通信服务器202及203、用户解析器204,所述控制器201连接所述通信服务器202及203,所述通信服务器202及203连接所述用户解析器204。所述控制器201,用于向通信服务器202及203发送更新指令,并根据所述通信服务器202及203的通知,向通信服务器202及203发送同步指令,并于所述通信服务器202及203将其内部数据库中的所述备用字段同步到真实字段后,向通信服务器202及203发送解锁指令。所述通信服务器202及203,用于接收控制器201发送的更新指令后使用户状态列表进入阻塞模式,并将用户状态列表中的用户状态更新到其内部数据库的备用字段,还用于若在第一预设时间内未将所述用户状态更新到所述备用字段,根据自身存储的第一策略处理待处理用户状态列表中的待处理用户状态,并将处理后的用户状态更新到数据库的真实字段,且若在第二预设时间内将所述用户状态列表中的所述用户状态成功更新到所述备用字段,通知所述控制器201,并根据控制器201发送的解锁指令将所述用户状态列表解除阻塞模式。所述用户解析器204,用于存储用户与数据库对应关系表,其中,每个数据库位于对应的通信服务器202及203中;还用于接收并解析所述用户的连接请求,根据其存储的用户与数据库对应关系表,将所述用户分配至对应的通信服务器202及203,进行通信。关于上述系统的操作流程同上述方法所述,故于此不再赘述。综上所述,根据本发明较佳实施例提供的用户状态同步的方法及系统,用户解析器存储用户与数据库对应关系表,其中每个数据库位于对应的通信服务器中。用户解析器接收并解析用户的连接请求,根据其存储的用户与数据库对应关系表,将用户分配至对应的通信服务器进行通信。通信服务器接收控制器发送的更新指令后,通信服务器的用户状态列表进入阻塞模式,通信服务器将用户状态列表中的用户状态更新到其内部数据库的备用字段。通信服务器仅更新自身的内部数据库,提高了数据库更新效率。若通信服务器在第一预设时间内未将用户状态更新到备用字段,通信服务器根据自身存储的第一策略处理待处理用户状态列表中的待处理用户状态,并将处理后的用户状态更新到其内部数据库的真实字段。若通信服务器在第二预设时间内将用户状态列表中的用户状态成功更新到备用字段,通信服务器通知控制器,控制器向通信服务器发送同步指令,通信服务器根据同步指令将其内部数据库中的备用字段同步到真实字段后,控制器向通信服务器发送解锁指令,通信服务器根据解锁指令将用户状态列表解除阻塞模式。如此,保证了通信服务器与内部数据库的用户状态一致,提高了视频会议的质量。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种用户状态同步的方法,其特征在于,包括以下步骤: 用户解析器存储用户与数据库对应关系表,其中,每个数据库位于对应的通信服务器中; 所述用户解析器接收并解析所述用户的连接请求,根据其存储的用户与数据库对应关系表,将所述用户分配至对应的通信服务器,进行通信; 所述通信服务器接收控制器发送的更新指令后,所述通信服务器的用户状态列表进入阻塞模式,所述通信服务器将用户状态列表中的用户状态更新到其内部数据库的备用字段; 若所述通信服务器在第一预设时间内未将所述用户状态更新到所述备用字段,所述通信服务器根据自身存储的第一策略处理待处理用户状态列表中的待处理用户状态,并将处理后的用户状态更新到其内部数据库的真实字 段; 若所述通信服务器在第二预设时间内将所述用户状态列表中的所述用户状态成功更新到所述备用字段,所述通信服务器通知所述控制器,所述控制器向所述通信服务器发送同步指令,所述通信服务器根据所述同步指令将其内部数据库中的所述备用字段同步到真实字段后,所述控制器向通信服务器发送解锁指令,所述通信服务器根据所述解锁指令将所述用户状态列表解除阻塞模式。
2.根据权利要求1所述的方法,其特征在于,所述第一策略为,所述通信服务器处理待处理用户状态列表中的每个待处理用户的方式为并发处理,且所述通信服务器处理每个待处理用户状态的时间均为第二预设时间。
3.根据权利要求1所述的方法,其特征在于,若所述通信服务器在第二预设时间内未将所述用户状态成功更新到所述备用字段,所述通信服务器不再向所述控制器发送通知,且所述通信服务器自行解除所述用户状态列表的阻塞模式。
4.根据权利要求1所述的方法,其特征在于,若所述通信服务器在第一预设时间内将所述用户状态成功更新到所述备用字段,所述通信服务器通知控制器,所述控制器向所述通信服务器发送同步指令,所述通信服务器根据所述同步指令将所述备用字段同步到真实字段后,所述控制器向通信服务器发送解锁指令,所述通信服务器根据所述解锁指令将所述用户状态列表解除阻塞模式。
5.根据权利要求1所述的方法,其特征在于,所述控制器向所述通信服务器发送更新指令前,先向所述通信服务器发送清零指令,所述通信服务器根据所述清零指令将其内部数据库中的所述备用字段清零。
6.一种用户状态同步的系统,其特征在于,包括控制器、用户解析器、至少ー个通信服务器,所述控制器连接所述通信服务器,所述通信服务器连接所述用户解析器, 所述控制器,用于向通信服务器发送更新指令,井根据所述通信服务器的通知,向通信服务器发送同步指令,并于所述通信服务器将其内部数据库中的所述备用字段同步到真实字段后,向通信服务器发送解锁指令; 所述用户解析器,用于存储用户与数据库对应关系表,其中,每个数据库位于对应的通信服务器中;还用于接收并解析所述用户的连接请求,根据其存储的用户与数据库对应关系表,将所述用户分配至对应的通信服务器,进行通信; 所述通信服务器,用于接收控制器发送的更新指令后使用户状态列表进入阻塞模式,并将用户状态列表中的用户状态更新到其内部数据库的备用字段, 还用于若在第一预设时间内未将所述用户状态更新到所述备用字段,根据自身存储的第一策略处理待处理用户状态列表中的待处理用户状态,并将处理后的用户状态更新到数据库的真实字段,且若在第二预设时间内将所述用户状态列表中的所述用户状态成功更新到所述备用字段,通知所述控制器,并根据控制器发送的解锁指令将所述用户状态列表解 除阻塞模式。
全文摘要
本发明提供一种用户状态同步的方法及系统,本发明方法包括以下步骤。用户解析器存储用户与数据库对应关系表,其中,每个数据库位于对应的通信服务器中。 用户解析器接收并解析用户的连接请求,根据其存储的用户与数据库对应关系表,将用户分配至对应的通信服务器,进行通信。通信服务器接收控制器发送的更新指令后,通信服务器的用户状态列表进入阻塞模式,通信服务器将用户状态列表中的用户状态更新到其内部数据库的备用字段。若通信服务器在第一预设时间内未将用户状态更新到备用字段,通信服务器根据自身存储的第一策略处理待处理用户状态列表中的待处理用户状态,并将处理后的用户状态更新到其内部数据库的真实字段。
文档编号H04L29/08GK103118008SQ20131000387
公开日2013年5月22日 申请日期2013年1月7日 优先权日2013年1月7日
发明者胡加明, 刘晓东 申请人:苏州阔地网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1