一种在即时通讯工具中显示好友登录状态的方法及系统与流程

文档序号:12278423阅读:219来源:国知局
一种在即时通讯工具中显示好友登录状态的方法及系统与流程

本发明属于通信技术领域,尤其涉及一种在即时通讯工具中显示好友登录状态的方法及系统。



背景技术:

在即时通讯系统中,每个用户上线时都需要获取自身好友的登录状态。登录状态一般包括好友的在线状态和登录资源,其中登录资源是指好友使用何种终端来登录即时通讯服务器,如:手机、电脑或者web页面等。通过在用户的客户端显示好友的登录状态,可以提供更好的用户体验。

为了实现这个功能,在用户量级别不同时面临的技术难度是不同的。例如:在系统总用户数不是很多的时候,所有的数据包括用户登录状态信息都放在一台关系型数据库中就可以了,这样直接用一次SQL查询就可以查询到某一用户所有好友的登录状态。但是当用户数量达到上亿级时,如QQ,如果继续将用户的登录状态信息保存在关系型数据库中,由于用户上下线都需要访问数据库来更新登录状态,而用户的登录状态是经常变化的,尤其是在移动互联网中,用户上下线更为频繁,由此会给数据库带来极大的压力,可能把数据库压垮,导致整个系统泵机。

针对上述情况,现有技术中提出了另一种方案是实时地在即时通讯服务器的内存里给每一个用户维护一个好友列表,在好友列表中实时地更新各好友的登录状态,这样虽然可以做到用户客户端一请求好友列表数据,就能马上返回结果,无需查询数据库,但是这种方案占用很大的内存量,并且用户在上线或下线时,有多少个好友内存就要进行多少次更新,好友数越多更新的次数也就越多,这样假如有十万个用户同时登录,每个用户有200个好友,那内存将面临着2000万次的更新,并且好友的登录可能分布于不同的即时通讯服务器,这样还面临着跨服务器更新内存,仍然会给整个系统带来很大压力。



技术实现要素:

本发明实施例的目的在于提供一种在即时通讯工具中显示好友登录状态的方法及系统,旨在解决现有显示好友登录状态的方式存在的需要在内存中实时维护好友的登录状态,会占用很大的内存量,并且当用户数量较多时,仍然会给整个系统带来很大压力的问题。

本发明实施例是这样实现的,一种在即时通讯工具中显示好友登录状态的方法,包括:

当用户登录所述即时通讯工具的客户端时,用户所在的即时通讯服务器根据用户的登录账号将用户的好友列表返回至所述用户的客户端进行显示,所述好友列表中好友的登录状态均显示为默认状态;

所述用户所在的即时通讯服务器根据所述好友列表查询好友所在的即时通讯服务器,并通过所述好友所在的即时通讯服务器获取所述好友当前的登录状态;

所述用户所在的即时通讯服务器将所述好友当前的登录状态返回至所述用户的客户端,使所述用户的客户端根据所述好友当前的登录状态更新所述好友列表中显示的好友的登录状态。

本发明实施例的另一目的在于提供一种在即时通讯工具中显示好友登录状态的系统,其中,所述系统位于用户所在的即时通讯服务器中,所述系统包括:

好友列表获取单元,用于当用户登录所述即时通讯工具的客户端时,根据用户的登录账号将用户的好友列表返回至所述用户的客户端进行显示,所述好友列表中好友的登录状态均显示为默认状态;

好友登录状态获取单元,用于根据所述好友列表查询好友所在的即时通讯服务器,并通过所述好友所在的即时通讯服务器获取所述好友当前的登录状态;

好友登录状态更新单元,用于将所述好友当前的登录状态返回至所述用户的客户端,使所述用户的客户端根据所述好友当前的登录状态更新所述好友列表中显示的好友的登录状态。

实施本发明实施例提供的一种在即时通讯工具中显示好友登录状态的方法及系统具有以下有益效果:

本发明实施例通过当用户登录所述即时通讯工具的客户端时,用户所在的即时通讯服务器根据用户的登录账号将用户的好友列表返回至所述用户的客户端进行显示,所述好友列表中好友的登录状态均显示为默认状态;所述用户所在的即时通讯服务器根据所述好友列表查询好友所在的即时通讯服务器,并通过所述好友所在的即时通讯服务器获取所述好友当前的登录状态;所述用户所在的即时通讯服务器将所述好友当前的登录状态返回至所述用户的客户端,使所述用户的客户端根据所述好友当前的登录状态更新所述好友列表中显示的好友的登录状态,从而无需在即时通讯服务器的内存中实时维护好友的登录状态即可使用户在登录时及时获取并显示好友的登录状态,大大减少了内存的占用量,并且无需频繁的更新即时通讯服务器的内存,减轻了整个即时通讯系统的运行压力。

附图说明

图1是本发明实施例提供的一种在即时通讯工具中显示好友登录状态的方法的示意流程图;

图2是本发明另一实施例提供的一种在即时通讯工具中显示好友登录状态的方法的示意流程图;

图3是本发明实施例提供的一种在即时通讯工具中显示好友登录状态的系统的示意性框图;

图4是本发明实施例提供的一种在即时通讯工具中显示好友登录状态的系统中好友登录状态获取单元的示意性框图;

图5是本发明另一实施例提供的一种在即时通讯工具中显示好友登录状态的系统的示意性框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1是本发明实施例提供的一种在即时通讯工具中显示好友登录状态的方法的示意流程图。参见图1所示,本实施例提供的一种在即时通讯工具中显示好友登录状态的方法,包括:

在S101中,当用户登录所述即时通讯工具的客户端时,用户所在的即时通讯服务器根据用户的登录账号将用户的好友列表返回至所述用户的客户端进行显示,所述好友列表中好友的登录状态均显示为默认状态。

在本实施例中,所述登录状态包括在线状态和登录资源状态。进一步的,所述在线状态包括但不限于在线、离线、忙碌、离开以及自定义状态,所述登录资源状态包括但不限于未知、手机、电脑、智能电视以及网页web。

在本实施例中,所述默认状态中的所述在线状态为离线,所述登录资源状态为未知。在本实施例中,所述用户的客户端可以通过变换好友图标或者通过在好友图标后的预设区域内添加文字的方式来显示好友的登录状态。

在S102中,所述用户所在的即时通讯服务器根据所述好友列表查询好友所在的即时通讯服务器,并通过所述好友所在的即时通讯服务器获取所述好友当前的登录状态。

在本实施例中,步骤S102具体包括:

所述用户所在的即时通讯服务器根据所述好友列表查询所述好友所在的即时通讯服务器;

若所述好友与所述用户分别位于不同的即时通讯服务器,则所述用户所在的即时通讯服务器将用户的上线通知信息发送至所述好友所在的即时通讯服务器,并接收所述好友所在即时通讯服务器根据所述用户的上线通知信息返回的应答信息,所述应答信息包括所述用户好友当前的登录状态;或者,

若所述用户好友与所述用户位于同一即时通讯服务器,则所述用户所在的即时通讯服务器直接在自身数据库中查找所述好友当前的登录状态。

在本实施例中,所述好友列表中包括好友的登录账号信息,所述好友的登录账号信息包括好友的昵称、账号ID以及账号ID所在的即时通讯服务器,所述好友的账号ID所在的即时通讯服务器即为好友所在的即时通讯服务器。

在本实施例中,用户上线或者改变登录状态时均会通过用户的客户端将用户当前的登录状态发送至用户所在的即时通讯服务器进行存储,同样好友上线或者改变登录状态时,好友的客户端也会将好友当前的登录状态发送至好友所在的即时通讯服务器进行存储。进一步的,用户所在的即时通讯服务器和好友所在的即时通讯服务器可能为同一个服务器,也可能为两个不同的服务器,因此,用户所在的即时通讯服务器在查找到好友所在的即时通讯服务器时,会判断好友所在的即时通讯服务器的IP地址是否与用户所在的即时通讯服务器的IP地址相同,若相同,则说明两者位于同一即时通讯服务器,此时用户所在的即时通讯服务器可直接在自身数据库中查询好友当前的登录状态;反之,若不相同,则说明两者分别位于不同的即时通讯服务器中,此时由用户所在的通讯服务器向好友所在的通讯服务器发送用户的上线通知信息,其中用户的上线通知信息包括用户当前的登录状态、用户的账户ID以及好友的账户ID,使好友所在的通讯服务器根据所述用户的上线通知信息中好友的账户ID查询好友当前的登录状态,根据好友当前的登录状态作为应答信息返回至用户所在的即时通讯服务器。

在S103中,所述用户所在的即时通讯服务器将所述好友当前的登录状态返回至所述用户的客户端,使所述用户的客户端根据所述好友当前的登录状态更新所述好友列表中显示的好友的登录状态。

在本实施例中,所述用户的客户端在接收到所述用户所在即时通讯服务器转发的好友当前的登录状态时,并根据好友当前的登录状态更新自身好友列表中该好友的登录状态。

以上可以看出,本实施例提供的一种在即时通讯工具中显示好友登录状态的方法通过当用户登录所述即时通讯工具的客户端时,用户所在的即时通讯服务器根据用户的登录账号将用户的好友列表返回至所述用户的客户端进行显示,所述好友列表中好友的登录状态均显示为默认状态;所述用户所在的即时通讯服务器根据所述好友列表查询好友所在的即时通讯服务器,并通过所述好友所在的即时通讯服务器获取所述好友当前的登录状态;所述用户所在的即时通讯服务器将所述好友当前的登录状态返回至所述用户的客户端,使所述用户的客户端根据所述好友当前的登录状态更新所述好友列表中显示的好友的登录状态,从而无需在用户所在的即时通讯服务器的内存中实时维护好友的登录状态即可使用户在登录时及时获取并显示好友的登录状态,大大减少了内存的占用量,并且无需频繁的更新即时通讯服务器的内存,减轻了整个即时通讯系统的运行压力。

图2是本发明另一实施例提供的一种在即时通讯工具中显示好友登录状态的方法的示意流程图。参见图2所示,相对于上一实施例,本实施例提供的所述方法在所述用户所在的即时通讯服务器根据所述好友列表查询好友所在的即时通讯服务器,并通过所述好友所在的即时通讯服务器获取所述好友当前的登录状态之后还包括:

在S203中,所述用户所在的即时通讯服务器通过所述好友所在的即时通讯服务器根据所述好友当前的登录状态向在线好友的客户端发送用户的上线通知信息,使所述在线好友的客户端根据所述上线通知信息更新所述用户的登录状态。

在本实施例中,所述好友所在的即时通讯服务器在获取到好友的登录状态时,会根据所述登录状态判断所述好友是否在线,若在线,则会将所述用户所在的即时通讯服务器接收到的用户的客户端发送的用户的上线通知信息转发至所述好友的客户端,使所述好友的客户端根据用户的上线通知信息更新自身好友列表中用户的登录状态。

进一步的,相对于上一实施例,在本实施例中,所述用户所在的即时通讯服务器将所述好友当前的登录状态返回至所述用户的客户端,使所述用户的客户端根据所述好友当前的登录状态更新所述好友列表中显示的好友的登录状态之后还包括:

在S205中,当用户的登录状态发生改变时,所述用户所在的即时通讯服务器重新获取用户当前的登录状态,并将用户当前的登录状态通过所述好友所在的即时通讯服务器发送至在线好友的客户端,使所述在线好友的客户端根据所述用户当前的登录状态更新自身好友列表中所述用户的登录状态。

在本实施例中,当用户的登录状态发生改变时,例如:当用户的在线状态发生改变或者登录资源状态发生改变时,所述用户所在的即时通讯服务器均会重新获取用户当前的登录状态,并将用户当前的登录状态通过好友所在的通讯服务器转发至自身好友列表中的在线好友,使所述在线好友的客户端及时更新自身好友列表中所述用户的登录状态。同样,当好友的登录状态发生改变时,好友所在的即时通讯服务器也会通过用户所在的即时通讯服务器重新将好友的当前登录状态转发至所述用户的客户端,使所述用户的客户端及时更新自身好友列表中有关所述好友的登录状态。

需要说明的是,本实施例中的步骤S201~步骤S202以及步骤S204由于与图1所示实施例中的步骤S101~步骤S103完全相同,因此,在此不再赘述。

因此,可以看出,本实施例提供的一种在即时通讯工具中显示好友登录状态的方法同样无需在用户所在的即时通讯服务器的内存中实时维护好友的登录状态即可使用户在登录时及时获取并显示好友的登录状态,大大减少了内存的占用量,并且无需频繁的更新即时通讯服务器的内存,减轻了整个即时通讯系统的运行压力;此外,相对于上一实施例,本实施例还能够在用户的登录状态发生改变时,及时更新用户在其在线好友的好友列表中的登录状态。

图3是本发明实施例提供的一种在即时通讯工具中显示好友登录状态的系统的示意性框图,该系统位于用户所在的即时通讯服务器中。为了便于说明,仅仅示出了与本实施例相关的部分。

参见图3所示,本实施例提供的一种在即时通讯工具中显示好友登录状态的系统,包括:

好友列表获取单元1,用于当用户登录所述即时通讯工具的客户端时,根据用户的登录账号将用户的好友列表返回至所述用户的客户端进行显示,所述好友列表中好友的登录状态均显示为默认状态;

好友登录状态获取单元2,用于根据所述好友列表查询好友所在的即时通讯服务器,并通过所述好友所在的即时通讯服务器获取所述好友当前的登录状态;

好友登录状态更新单元3,用于将所述好友当前的登录状态返回至所述用户的客户端,使所述用户的客户端根据所述好友当前的登录状态更新所述好友列表中显示的好友的登录状态。

可选的,参见图4所示,所述好友登录状态获取单元2包括:

好友服务器查询单元21,用于根据所述好友列表查询所述好友所在的即时通讯服务器;

第一登录状态获取单元22,用于若所述好友与所述用户分别位于不同的即时通讯服务器,则将用户的上线通知信息发送至所述好友所在的即时通讯服务器,并接收所述好友所在即时通讯服务器根据所述用户的上线通知信息返回的应答信息,所述应答信息包括所述用户好友当前的登录状态;或者,

第二登录状态获取单元23,用于若所述用户好友与所述用户位于同一即时通讯服务器,则直接在所述用户所在的即时通讯服务器的数据库中查找所述好友当前的登录状态。

可选的,所述登录状态包括在线状态和登录资源状态,其中:所述在线状态包括在线、离线、忙碌、离开以及自定义状态;所述登录资源状态包括未知、手机、电脑、智能电视以及网页web;所述默认状态中的在线状态为离线,登录资源状态为未知。

可选的,参见图5所示,在另一实施例中,所述的在即时通讯工具中显示好友登录状态的系统还包括:

用户上线通知单元4,用于通过所述好友所在的即时通讯服务器根据所述好友当前的登录状态向在线好友的客户端发送用户的上线通知信息,使所述在线好友的客户端根据所述上线通知信息更新所述用户的登录状态。

可选的,所述的在即时通讯工具中显示好友登录状态的系统还包括:

用户登录状态更新单元5,用于当用户的登录状态发生改变时,所述重新获取用户当前的登录状态,并将用户当前的登录状态通过所述好友所在的即时通讯服务器发送至在线好友的客户端,使所述在线好友的客户端根据所述用户当前的登录状态更新自身好友列表中所述用户的登录状态。

需要说明的是,本发明实施例提供的上述系统中各个模块,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

因此,可以看出,本发明实施例提供的一种在即时通讯工具中显示好友登录状态的系统同样无需在用户所在的即时通讯服务器的内存中实时维护好友的登录状态即可使用户在登录时及时获取并显示好友的登录状态,大大减少了内存的占用量,并且无需频繁的更新即时通讯服务器的内存,减轻了整个即时通讯系统的运行压力。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1