一种状态通知方法及服务器与流程

文档序号:11138443阅读:258来源:国知局
一种状态通知方法及服务器与制造工艺

本发明涉及互联网技术领域,尤其涉及一种状态通知方法及服务器。



背景技术:

目前,很多在线直播节目中,位于主播用户所在频道(也称为虚拟空间或者虚拟房间)中的点播用户可以和主播用户之间进行互动。该频道中的主播用户或者点播用户可以通过在线列表知悉进入该频道中的所有成员,则在线列表的维护尤为重要。当主播用户创建频道或者点播用户进入该频道时,服务器可以确定该用户处于在线状态;主播用户或者点播用户向服务器发送退出请求之后,服务器可以确定该用户处于离线状态。但是由于网络故障或者断电等因素导致用户异常退出时,服务器认为该用户处于在线状态,在线列表中仍然存在该用户的客户端标识,则该频道中的其他成员认为该用户仍然处于在线状态,无法准确识别用户的运行状态,导致在线状态识别的精准度较低。



技术实现要素:

本发明实施例所要解决的技术问题在于,提供一种状态确定方法及服务器,可准确识别客户端的运行状态,提高在线状态识别的精准度。

为了解决上述技术问题,本发明实施例提供了一种状态确定方法,所述方法包括:

获取在线数据库中运行状态标记为在线状态的客户端的客户端标识;

当在预设时间段内接收到所述客户端标识对应客户端发送的在线状态通知信息时,确定所述客户端当前的运行状态为在线状态;

当在所述预设时间段内未接收到所述客户端发送的所述在线状态通知信息时,确定所述客户端当前的运行状态为离线状态。

相应地,本发明实施例还提供了一种服务器,所述服务器包括:

标识获取模块,用于获取在线数据库中运行状态标记为在线状态的客户端的客户端标识;

在线状态确定模块,用于当在预设时间段内接收到所述客户端标识对应客户端发送的在线状态通知信息时,确定所述客户端当前的运行状态为在线状态;

离线状态确定模块,用于当在所述预设时间段内未接收到所述客户端发送的所述在线状态通知信息时,确定所述客户端当前的运行状态为离线状态。

实施本发明实施例,通过获取在线数据库中运行状态标记为在线状态的客户端的客户端标识,当在预设时间段内接收到客户端标识对应客户端发送的在线状态通知信息时,确定客户端当前的运行状态为在线状态,当在预设时间段内未接收到客户端发送的在线状态通知信息时,确定客户端当前的运行状态为离线状态,可准确识别客户端的运行状态,提高在线状态识别的精准度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图;

图1是本发明实施例中提供的一种状态确定系统的结构示意图;

图2是本发明实施例中提供的一种状态确定方法的流程示意图;

图3是本发明实施例中提供的一种服务器的结构示意图;

图4是本发明另一实施例中提供的一种服务器的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供了一种状态确定方法,服务器获取在线数据库中运行状态标记为在线状态的客户端的客户端标识,当在预设时间段内接收到客户端标识对应客户端发送的在线状态通知信息时,确定客户端当前的运行状态为在线状态,当在预设时间段内未接收到客户端发送的在线状态通知信息时,确定客户端当前的运行状态为离线状态。相对传统的状态确定方法中接收到客户端发送的登录请求时确定该客户端当前的运行状态为在线状态,接收到客户端发送的退出请求时确定该客户端当前的运行状态为离线状态,由于网络故障或者断电等因素导致客户端异常退出时,服务器并未接收到客户端发送的退出请求,则服务器确定该客户端当前的运行状态为在线状态,而本发明实施例中由于网络故障或者断电等因素导致客户端异常退出时,客户端无法向服务器发送在线状态通知信息,因此当服务器在预设时间段内未接收到该客户端发送的在线状态通知信息时,确定该客户端当前的运行状态为离线状态,可准确识别客户端的运行状态,提高在线状态识别的精准度。

基于上述原理,本发明实施例提供了一种状态确定系统,该系统可以为诸如即时通信应用系统、SNS(Social Networking Services,社会性网络服务)应用系统等互联网应用系统。参见图1,该状态确定系统的架构至少包括:服务器101及接入至所述服务器101的至少一个客户端102。

其中,客户端102可以运行在笔记本电脑、手机、PAD(平板电脑)、车载终端或者智能可穿戴设备等终端中,客户端102可以包括即时通信客户端(例如微信客户端或者QQ客户端等)、直播客户端(例如花样直播客户端)或者视频播放客户端(例如腾讯视频客户端)等。终端中可以运行至少一种类型的互联网应用,包括但不限于:即时通信应用、SNS应用等等。用户可以通过终端使用互联网应用,例如:用户可通过终端在直播房间提交社交消息;或者,用户可通过终端与互联网应用中的其他用户进行交互,例如用户通过终端使用微信或者QQ等即时通信应用,显示与其他用户之间的会话界面,用户可以在该会话界面输入社交消息等;等等。其中,服务器101可以是互联网中的一个独立服务设备,或者是由互联网中的多个独立服务设备共同构成的集群服务设备;该服务器101可用于处理互联网应用在实现数据配置以及信息交互等功能的过程中的各种需求,并且,该服务器101可用于对互联网应用中的用户的相关数据、用户及用户之间的交互消息进行管理,例如维护在线数据库。

其中,接入至服务器101的至少一个客户端102可以属于同一个社交关系集群,该社交关系集群中的各个客户端可以相互分享文字消息、文件、语音或者视频等数据,社交关系集群往往是一些具有共性的小群体建立起来的,群成员一般都有着密切的联系,例如社交关系集群可以是基于某种共同爱好、兴趣或需求而建立起来的虚拟群体,如“购物群”、“旅游群”、“股票群”或者“胡歌明星直播房间”等,又如社交关系集群是基于某种现实群体而建立起来的虚拟群体,如“同学群”、“同事群”或者“同乡群”等。

在线数据库可以包括社交关系集群中运行状态为在线状态的客户端的客户端标识,可以用于提示群成员指定用户的运行状态。

基于图1所示的状态确定系统的结构示意图,本发明实施例公开了图2所示的一种状态确定方法的流程示意图。如图2所示,该状态确定方法可以包括以下步骤:

S201,获取在线数据库中运行状态标记为在线状态的客户端的客户端标识。

服务器可以获取在线数据库中运行状态标记为在线状态的客户端的客户端标识。其中客户端标识可以用于唯一标识该客户端,例如用户的登录账号、客户端的网络之间互连的协议(Internet Protocol,IP)地址、媒介访问控制(Media Access Control,MAC)地址或者国际移动设备标识(International Mobile Equipment Identity,IMEI)等。

具体实现中,不同社交关系集群可以对应不同的在线数据库,在线数据库可以为在线列表,在线列表可以包括至少一个客户端的客户端标识,在线列表中各个客户端标识对应客户端的运行状态均标记为在线状态,例如当用户通过客户端向服务器发送登录请求之后,服务器可以确定该客户端当前的运行状态为在线状态,并将该客户端的客户端标识存储到在线列表中;当客户端主动退出其所属社交关系集群或者网络故障等原因导致异常退出时,服务器可以确定该客户端当前的运行状态为离线状态,并删除在线列表中该客户端的客户端标识。为了准确识别客户端的运行状态,服务器需要定时对在线列表中的客户端的运行状态进行识别,以便对客户端当前的运行状态进行更新,则服务器可以获取在线数据库中客户端的客户端标识。

S202,当在预设时间段内接收到客户端标识对应客户端发送的在线状态通知信息时,确定客户端当前的运行状态为在线状态。

服务器获取在线数据库中运行状态标记为在线状态的客户端的客户端标识之后,可以判断是否在预设时间段内接收到该客户端标识对应客户端发送的在线状态通知信息,当在预设时间段内接收到该客户端发送的在线状态通知信息时,服务器可以确定客户端当前的运行状态为在线状态。其中,在线状态通知信息可以为空数据或者数据量大于零的数据,具体不受本发明实施例的限制。

具体实现中,用户可以通过客户端输入登录账号等信息与服务器之间建立通信连接,客户端的运行状态为在线状态,客户端可以通过与服务器之间的通信连接定时向服务器发送在线状态通知信息,当服务器在预设时间段内接收到该客户端发送的在线状态通知信息时,可以确定客户端当前的运行状态为在线状态;若客户端主动退出其所属社交关系集群或者网络故障等原因导致客户端异常退出,则客户端与服务器之间的通信连接将会断开,客户端无法向服务器发送在线状态通知信息,则服务器在预设时间段内未接收到该客户端发送的在线状态通知信息时,可以确定客户端当前的运行状态为离线状态。

可选的,服务器可以获取客户端的客户端类型,当客户端的客户端类型为第一类型时,确定第一类型对应的第一时间段,当在第一时间段内接收到客户端发送的在线状态通知信息时,确定客户端当前的运行状态为在线状态。其中,客户端类型可以包括第一类型和第二类型,例如第一类型为主播用户,第二类型为点播用户,需要说明的是,本发明实施例中的客户端类型的种类包含但不局限于两类,客户端类型的种类可以为至少三类,例如客户端类型包括第一类型、第二类型和第三类型,第一类型为群主,第二类型为管理员,第三类型为普通用户,等等,具体不受本发明实施例的限制。

例如,若第一类型为主播用户,服务器获取在线数据库中运行状态标记为在线状态的客户端的客户端标识,该客户端标识所对应客户端的客户端类型为主播用户,由于主播用户与其他用户之间的互动较多,对运行状态识别的实时需求较高,则服务器配置的主播用户发送在线状态通知信息的发送频率可以高于点播用户发送在线状态通知信息的发送频率,本发明实施例基于不同客户端对运行状态识别的实时需求不相同,配置不同客户端类型所对应的时间段,可提高运行状态识别的有效性,且提高系统资源利用率。示例性的,服务器可以将主播用户对应的时间段配置为20s,如果客户端向服务器发送登录请求之后,服务器将该客户端的客户端标识存储到在线数据库中,且该客户端的客户端类型为主播用户,服务器与该客户端建立通信连接之后,服务器可以将该客户端的发送周期配置为10s,并将该发送周期发送给该客户端,则该客户端可以每间隔10s向服务器发送一次在线状态通知信息,服务器判断从上一次接收到该客户端发送的在线状态通知信息开始经过20s的时间段内是否接收到该客户端发送的在线状态通知信息,当服务器从上一次接收到该客户端发送的在线状态通知信息开始经过20s的时间段内接收到该客户端发送的在线状态通知信息时,服务器可以确定该客户端当前的运行状态为在线状态。

可选的,在线数据库还可以包括各个客户端标识所对应客户端的客户端类型,则服务器获取在线数据库中的客户端标识之后,可以确定该客户端标识所对应客户端的客户端类型,并判断在该客户端类型对应的时间段内是否接收到该客户端发送的在线状态通知信息,当在该客户端类型对应的时间段内接收到该客户端发送的在线状态通知信息时,服务器可以确定该客户端当前的运行状态为在线状态;当在该客户端类型对应的时间段内未接收到该客户端发送的在线状态通知信息时,服务器可以确定该客户端当前的运行状态为离线状态。

可选的,服务器接收到客户端发送的在线状态通知信息时,该在线状态通知信息可以携带客户端类型,则服务器可以判断在该客户端类型对应的时间段内是否接收到该客户端发送的在线状态通知信息,当在该客户端类型对应的时间段内接收到该客户端发送的在线状态通知信息时,服务器可以确定该客户端当前的运行状态为在线状态;当在该客户端类型对应的时间段内未接收到该客户端发送的在线状态通知信息时,服务器可以确定该客户端当前的运行状态为离线状态。

S203,当在预设时间段内未接收到客户端发送的在线状态通知信息时,确定客户端当前的运行状态为离线状态。

服务器获取在线数据库中运行状态标记为在线状态的客户端的客户端标识之后,可以判断是否在预设时间段内接收到该客户端标识对应客户端发送的在线状态通知信息,当在预设时间段内未接收到该客户端发送的在线状态通知信息时,服务器可以确定客户端当前的运行状态为离线状态。

可选的,服务器可以获取客户端的客户端类型,当客户端的客户端类型为第二类型时,确定第二类型对应的第二时间段,当在第二时间段内未接收到客户端发送的在线状态通知信息时,确定客户端当前的运行状态为离线状态。

例如,若第二类型为点播用户,服务器获取在线数据库中运行状态标记为在线状态的客户端的客户端标识,该客户端标识所对应客户端的客户端类型为点播用户,由于点播用户与其他用户之间的互动较少,对运行状态识别的实时需求较低,则服务器配置的点播用户发送在线状态通知信息的发送频率可以低于主播用户发送在线状态通知信息的发送频率,本发明实施例基于不同客户端对运行状态识别的实时需求不相同,配置不同客户端类型所对应的时间段,可提高运行状态识别的有效性,且提高系统资源利用率。示例性的,服务器可以将点播用户对应的时间段配置为30s,如果客户端向服务器发送登录请求之后,服务器将该客户端的客户端标识存储到在线数据库中,且该客户端的客户端类型为点播用户,当服务器与该客户端建立通信连接开始经过30s的时间段内未接收到该客户端发送的在线状态通知信息时,服务器可以确定该客户端当前的运行状态为离线状态;如果服务器在上一次接收到该客户端发送的在线状态通知信息,当服务器从上一次接收到该客户端发送的在线状态通知信息开始经过30s的时间段内未接收到该客户端发送的在线状态通知信息时,服务器可以确定该客户端当前的运行状态为离线状态。

可选的,服务器确定客户端当前的运行状态为离线状态之后,可以删除在线数据库中的客户端标识。具体实现中,服务器在预设时间段内未接收到该客户端发送的在线状态通知信息时,可以确定客户端当前的运行状态为离线状态,并删除在线数据库中的客户端标识,以确保在线数据库中的客户端标识所对应客户端当前的运行状态均为在线状态。

可选的,服务器在检测到对客户端提交的时间间隔时,可以生成发送周期更新信息,其中发送周期更新信息可以携带时间间隔,服务器可以向客户端发送该发送周期更新信息,以使客户端以时间间隔为发送周期反馈在线状态通知信息。

具体实现中,当服务器负载较高时,服务器可以生成对客户端的时间间隔,进而生成发送周期更新信息,并向客户端发送该发送周期更新信息。例如,第一类型所对应客户端的发送周期为10s,第二类型所对应客户端的发送周期为30s,由于服务器当前负载较高,为了提升系统资源利用率,服务器可以增大不同客户端类型对应的时间间隔,例如将第一类型所对应的时间间隔调整为30s,第二类型对应的时间间隔调整为60s,即服务器生成对客户端类型为第一类型的客户端的时间间隔,其中该时间间隔为30s,并生成发送周期更新信息,将发送周期更新信息发送给该客户端,以使该客户端每间隔30s发送一次在线状态通知信息;服务器还可以生成对客户端类型为第二类型的客户端的时间间隔,其中该时间间隔为60s,并生成发送周期更新信息,将发送周期更新信息发送给该客户端,以使该客户端每间隔60s发送一次在线状态通知信息。

可选的,服务器向客户端发送该发送周期更新信息之后,可以对预设时间段进行更新,得到更新后的时间段,当从上一次接收到在线状态通知信息开始经过更新后的时间段之前接收到客户端发送的在线状态通知信息时,服务器可以确定客户端当前的运行状态为在线状态;当从上一次接收到在线状态通知信息开始经过更新后的时间段时未接收到客户端发送的在线状态通知信息时,服务器可以确定客户端当前的运行状态为离线状态。其中,更新后的时间段可以大于对客户端提交的时间间隔,即服务器判断是否接收到客户端发送的在线状态通知信息的判断周期大于该客户端发送在线状态通知信息的发送周期,例如判断周期可以为两个发送周期,示例性的,发送周期为30s时,判断周期可以为60s。

例如,发送周期更新信息携带的时间间隔为30s,则客户端由每间隔10s发送一次在线状态通知信息更新为每间隔30s发送一次在线状态通知信息,服务器向该客户端发送该发送周期更新信息之前,服务器通过每间隔20s判断是否接收到该客户端发送的在线状态通知信息的方式确定该客户端当前的运行状态,由于更新后的时间段为60s,则服务器向该客户端发送该发送周期更新信息之后,服务器可以判断从上一次接收到第一类型的客户端发送的在线状态通知信息开始经过60s的时间段内是否接收到该客户端发送的在线状态通知信息,如果是,则确定该客户端当前的运行状态为在线状态;如果不是,则确定客户端当前的运行状态为离线状态。

又如,发送周期更新信息携带的时间间隔为60s,则客户端由每间隔30s发送一次在线状态通知信息更新为每间隔60s发送一次在线状态通知信息,服务器向第二类型的客户端发送该发送周期更新信息之前,服务器通过每间隔60s判断是否接收到该客户端发送的在线状态通知信息的方式确定该客户端当前的运行状态,由于更新后的时间段为120s,则服务器向该客户端发送该发送周期更新信息之后,服务器可以判断从上一次接收到第一类型的客户端发送的在线状态通知信息开始经过120s的时间段内是否接收到该客户端发送的在线状态通知信息,如果是,则确定该客户端当前的运行状态为在线状态;如果不是,则确定客户端当前的运行状态为离线状态。

本发明实施例中,服务器获取在线数据库中运行状态标记为在线状态的客户端的客户端标识,当在预设时间段内接收到客户端标识对应客户端发送的在线状态通知信息时,确定客户端当前的运行状态为在线状态,当在预设时间段内未接收到客户端发送的在线状态通知信息时,确定客户端当前的运行状态为离线状态,可准确识别客户端的运行状态,提高在线状态识别的精准度。

请参见图3,图3是本发明实施例中提供的一种服务器的结构示意图,所述服务器可以用于实施结合图2所示的方法实施例中的部分或全部步骤,如图所示本实施例中的服务器至少可以包括标识获取模块301、在线状态确定模块302以及离线状态确定模块303,其中:

标识获取模块301,用于获取在线数据库中运行状态标记为在线状态的客户端的客户端标识。

在线状态确定模块302,用于当在预设时间段内接收到所述客户端标识对应客户端发送的在线状态通知信息时,确定所述客户端当前的运行状态为在线状态。

离线状态确定模块303,用于当在所述预设时间段内未接收到所述客户端发送的所述在线状态通知信息时,确定所述客户端当前的运行状态为离线状态。

可选的,所述在线状态确定模块302,具体用于:

获取所述客户端的客户端类型。

当所述客户端的客户端类型为第一类型时,确定所述第一类型对应的第一时间段。

当在所述第一时间段内接收到所述客户端发送的所述在线状态通知信息时,确定所述客户端当前的运行状态为在线状态。

可选的,本发明实施例中的服务器还可以包括:

标识删除模块304,用于所述离线状态确定模块303确定所述客户端当前的运行状态为离线状态之后,删除所述在线数据库中的所述客户端标识。

可选的,本发明实施例中的服务器还可以包括:

更新信息生成模块305,用于在检测到对所述客户端提交的时间间隔时,生成发送周期更新信息,所述发送周期更新信息携带所述时间间隔。

更新信息发送模块306,用于向所述客户端发送所述发送周期更新信息,以使所述客户端以所述时间间隔为发送周期反馈所述在线状态通知信息。

可选的,本发明实施例中的服务器还可以包括:

更新模块307,用于在所述更新信息发送模块306向所述客户端发送所述发送周期更新信息之后,对所述预设时间段进行更新,得到更新后的时间段。

所述在线状态确定模块302,还用于当从上一次接收到所述在线状态通知信息开始经过所述更新后的时间段之前接收到所述客户端发送的所述在线状态通知信息时,确定所述客户端当前的运行状态为在线状态。

所述离线状态确定模块303,还用于当从上一次接收到所述在线状态通知信息开始经过所述更新后的时间段时未接收到所述客户端发送的所述在线状态通知信息时,确定所述客户端当前的运行状态为离线状态。

本发明实施例中,标识获取模块301获取在线数据库中运行状态标记为在线状态的客户端的客户端标识,当在预设时间段内接收到客户端标识对应客户端发送的在线状态通知信息时,在线状态确定模块302确定客户端当前的运行状态为在线状态,当在预设时间段内未接收到客户端发送的在线状态通知信息时,离线状态确定模块303确定客户端当前的运行状态为离线状态,可准确识别客户端的运行状态,提高在线状态识别的精准度。

请参见图4,图4是本发明另一实施例中提供的一种服务器的结构示意图,本发明实施例提供的服务器可以用于实施上述图2所示的本发明实施例实现的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照图2所示的本发明实施例。

如图4所示,该服务器包括:至少一个处理器401,例如CPU,至少一个输入装置403,至少一个输出装置404,存储器405,至少一个通信总线402。其中,通信总线402用于实现这些组件之间的连接通信。其中,输入装置403具体可以为网络接口等,用于接收客户端发送的在线状态通知信息。其中,输出装置404具体可以为网络接口等,用于向客户端发送发送周期更新信息。其中,存储器405可能包含高速RAM存储器,也可能还包括非不稳定的存储器,例如至少一个磁盘存储器,具体用于存储包含预设用户界面的网页等。存储器405可选的可以包含至少一个位于远离前述处理器401的存储装置。存储器405中存储一组程序代码,且处理器401、输入装置403以及输出装置404调用存储器405中存储的程序代码,用于执行以下操作:

处理器401获取在线数据库中运行状态标记为在线状态的客户端的客户端标识。

当输入装置403在预设时间段内接收到所述客户端标识对应客户端发送的在线状态通知信息时,处理器401确定所述客户端当前的运行状态为在线状态。

当输入装置403在所述预设时间段内未接收到所述客户端发送的所述在线状态通知信息时,处理器确定所述客户端当前的运行状态为离线状态。

可选的,所述当输入装置403在预设时间段内接收到所述客户端标识对应客户端发送的在线状态通知信息时,处理器401确定所述客户端当前的运行状态为在线状态,具体可以为:

处理器401获取所述客户端的客户端类型。

当所述客户端的客户端类型为第一类型时,处理器401确定所述第一类型对应的第一时间段。

当输入装置403在所述第一时间段内接收到所述客户端发送的所述在线状态通知信息时,处理器401确定所述客户端当前的运行状态为在线状态。

可选的,所述当输入装置403在所述预设时间段内未接收到所述客户端发送的所述在线状态通知信息时,处理器401确定所述客户端当前的运行状态为离线状态之后,还用于执行以下操作:

处理器401删除所述在线数据库中的所述客户端标识。

可选的,处理器401还可以执行以下操作:

在检测到对所述客户端提交的时间间隔时,处理器401生成发送周期更新信息,所述发送周期更新信息携带所述时间间隔。

输出装置404向所述客户端发送所述发送周期更新信息,以使所述客户端以所述时间间隔为发送周期反馈所述在线状态通知信息。

可选的,所述输出装置404向所述客户端发送所述发送周期更新信息之后,还可以执行以下操作:

对所述预设时间段进行更新,得到更新后的时间段。

当输入装置403从上一次接收到所述在线状态通知信息开始经过所述更新后的时间段之前接收到所述客户端发送的所述在线状态通知信息时,处理器401确定所述客户端当前的运行状态为在线状态;

当输入装置403从上一次接收到所述在线状态通知信息开始经过所述更新后的时间段时未接收到所述客户端发送的所述在线状态通知信息时,处理器401确定所述客户端当前的运行状态为离线状态。

具体的,本发明实施例中介绍的服务器可以用以实施本发明结合图2介绍的方法实施例中的部分或全部流程。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

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