本发明涉及计算机技术领域,特别涉及一种状态更新消息的推送方法及装置。
背景技术:
在现代企业中,为了便于员工之间进行交流,企业内部通常会维护一个即时通讯系统。每个员工作为即时通讯系统中的一个用户,可以有多种状态,包括在线、离线、忙碌等。
为了实现更有效的交流,即时通讯系统中的服务器会监测每个用户的状态,当接收到任一用户发送的状态更新消息后,将该用户的状态更新消息推送至系统中所有的其他用户。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
采用上述方式,虽然可以保证每个用户的状态的实时性,但对于一些大容量企业,例如具有10万员工的企业,当一个用户的状态变化时,需要将状态更新消息推送至企业中近10万的用户,对于服务器而言,该过程将消耗大量的网络资源,造成网络流量浪费。
技术实现要素:
为了解决现有技术的问题,本发明实施例提供了一种状态更新消息的推送方法及装置。所述技术方案如下:
第一方面,提供了一种状态更新消息的推送方法,所述方法包括:
接收指定群组内多个第二用户发送的联系信息,所述联系信息中至少携带第一用户标识及第二用户标识,所述联系信息由所述第二用户在与所述第一用户的交互过程中获取;
根据所述第一用户标识和多个所述第二用户标识,建立所述第一用户的联系列表;
接收所述第一用户发送的状态更新消息,所述状态更新消息中至少携带所述第一用户更新后的状态;
将所述状态更新消息推送至所述联系列表中每个第二用户标识对应的第二用户,由每个第二用户将所述第一用户的状态更新为所述更新后的状态。
第二方面,提供了一种状态更新消息的推送方法,所述方法包括:
在与指定群组内第一用户的交互过程中,获取第一用户标识;
向服务器发送联系信息,所述联系信息中至少携带所述第一用户标识及第二用户标识,所述联系信息用于所述服务器建立所述第一用户的联系列表;
接收服务器根据所述联系列表所推送的状态更新消息,所述状态更新消息中至少携带所述第一用户更新后的状态;
将所述第一用户的状态更新为所述更新后的状态。
第三方面,提供了一种状态更新消息的推送方法,所述方法包括:
接收指定群组内多个第二用户发送的联系信息,所述联系信息中至少携带第一用户标识及第二用户标识,所述联系信息由所述第二用户在与所述第一用户的交互过程中获取;
根据所述第一用户标识和多个所述第二用户标识,建立所述第一用户的联系列表;
当监测到所述第一用户的状态变化时,生成状态更新消息,所述状态更新消息中至少携带所述第一用户的更新后的状态;
将所述状态更新消息推送至所述联系列表中每个第二用户标识对应的第二用户,由每个第二用户将所述第一用户的状态更新为所述更新后的状态。
第四方面,提供了一种状态更新消息的推送方法,所述方法包括:
在与指定群组内第一用户的交互过程中,获取第一用户标识;
向所述第一用户发送联系信息,所述联系信息中至少携带所述第一用户标识及第二用户标识,所述联系信息用于所述第一用户建立第一用户的联系列表;
接收所述第一用户根据所述联系列表所推送的状态更新消息,所述状态更新消息中至少携带所述第一用户更新后的状态;
将所述第一用户的状态更新为更新后的状态。
第五方面,提供了一种服务器,所述服务器包括:
第一接收模块,用于接收指定群组内多个第二用户发送的联系信息,所述联系信息中至少携带第一用户标识及第二用户标识,所述联系信息由所述第二用户在与所述第一用户的交互过程中获取;
建立模块,用于根据所述第一用户标识和多个所述第二用户标识,建立所述第一用户的联系列表;
第二接收模块,用于接收所述第一用户发送的状态更新消息,所述状态更新消息中至少携带所述第一用户更新后的状态;
推送模块,用于将所述状态更新消息推送至所述联系列表中每个第二用户标识对应的第二用户,由每个第二用户将所述第一用户的状态更新为所述更新后的状态。
第六方面,提供了一种终端,所述终端为第二用户所在的终端,所述终端包括:
获取模块,用于在与指定群组内第一用户的交互过程中,获取第一用户标识;
发送模块,用于向服务器发送联系信息,所述联系信息中至少携带所述第一用户标识及第二用户标识,所述联系信息用于所述服务器建立所述第一用户的联系列表;
接收模块,用于接收服务器根据所述第一用户的联系列表所推送的状态更新消息,所述状态更新消息中至少携带所述第一用户更新后的状态;
更新模块,用于将所述第一用户的状态更新为所述更新后的状态。
第七方面,提供了一种第一终端,所述第一终端为第一用户所在的终端,所述第一终端包括:
接收模块,用于接收指定群组内第二用户发送的对第一用户的联系信息,所述联系信息中至少携带第一用户标识及第二用户标识,所述联系信息由所述第二用户在与所述第一用户的交互过程中获取;
建立模块,用于根据所述第一用户标识和所述第二用户标识,建立所述第一用户的联系列表;
生成模块,用于当监测到所述第一用户的状态变化时,生成状态更新消息,所述状态更新消息中至少携带所述第一用户的更新后的状态;
推送模块,用于将所述状态更新消息推送至所述联系列表中每个第二用户标识对应的第二用户,由每个第二用户将所述第一用户的状态更新为所述更新后的状态。
第八方面,提供了一种第二终端,所述第二终端为第二用户所在的终端,所述第二终端包括:
接收模块,用于接收指定群组内多个第二用户发送的联系信息,所述联系信息中至少携带第一用户标识及第二用户标识,所述联系信息由所述第二用户在与所述第一用户的交互过程中获取;
建立模块,用于根据所述第一用户标识和多个所述第二用户标识,建立所述第一用户的联系列表;
生成模块,用于当监测到所述第一用户的状态变化时,生成状态更新消息,所述状态更新消息中至少携带所述第一用户的更新后的状态;
推送模块,用于将所述状态更新消息推送至所述联系列表中每个第二用户标识对应的第二用户,由每个第二用户将所述第一用户的状态更新为所述更新后的状态。
本发明实施例提供的技术方案带来的有益效果是:
在接收到第一用户的状态更新消息时,根据第一用户的联系列表,对状态更新消息进行有针对性地推送,在确保第二用户及时获取到第一用户最新状态的前提下,避免了全量推送造成的网络资源浪费,节省了网络资源。另外,第一用户的状态更新过程在后台进行,第二用户并不会感知到,因而该种状态更新消息的推送方式,避免了对第二用户的打扰。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种状态更新消息的推送方法所涉及的实施环境的示意图;
图2是本发明另一个实施例提供的一种状态更新消息的推送方法所涉及的实施环境的示意图;
图3是本发明另一个实施例提供的一种状态更新消息的推送方法的流程图;
图4是本发明另一个实施例提供的一种状态更新消息的推送方法的流程图;
图5是本发明另一个实施例提供的一种状态更新消息的推送方法的流程图;
图6是本发明另一个实施例提供的一种状态更新消息的推送方法的流程图;
图7是本发明另一个实施例提供的一种状态更新消息的推送方法的流程图;
图8是本发明另一个实施例提供的一种终端的界面图;
图9是本发明另一个实施例提供的一种状态更新消息的推送方法的流程图;
图10是本发明另一个实施例提供的一种服务器的结构示意图;
图11是本发明另一个实施例提供的一种终端的结构示意图;
图12是本发明另一个实施例提供的一种终端的结构示意图;
图13是本发明另一个实施例提供的一种终端的结构示意图;
图14是发明实施例所涉及的状态更新消息的推送终端的结构示意图;
图15是根据一示例性实施例示出的一种用于状态更新消息的服务器。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
随着计算机技术的发展,各种即时通讯工具广泛地应用在人们的生活中。在企业场景下,为了便于企业管理及员工之间进行交流,企业内部会维护一个即时通讯系统,该即时通讯系统可应用于互联网中,也应用于局域网中。针对即时通讯系统所应用的网络场景,本发明实施例提供的状态更新消息的推送方法涉及到两种不同的实施环境。
请参考图1,图1为即时通讯系统应用于互联网时,本发明实施例提供的状态更新消息的推送方法所涉及的实施环境的示意图。参见图1,该实施例环境包括服务器101、终端102、终端103、终端104及终端105等。
其中,服务器101可以为一个独立的服务器,还可以为由多个服务器组成的服务器集群。在本实施例中,服务器101具有监测功能,能够监测系统中每个用户的状态;该服务器101还具有存储功能,能够存储每个用户的联系列表;该服务器101还具有发送功能,能够基于每个用户的联系列表,对每个用户的状态更新消息进行选择的推送。
在本实施例中,终端102为状态发生变化的用户所在的终端,终端103、终端104、终端105为状态更新的用户具有关注关系的用户所在的终端。终端102、终端103、终端104、终端105上安装有同一类型的即时通讯应用,基于所安装的即时通讯应用,终端102、终端103、终端104、终端105之间可彼此进行通信。终端102、终端103、终端104、终端105可以智能手机、平板电脑、台式电脑、笔记本电脑等,本实施例不对终端102、终端103、终端104、终端105的产品类型作具体的限定。在实际应用中,终端102、终端103、终端104、终端105的产品类型可以相同,也可以不同,本实施例对此不作具体的限定。
上述服务器101与终端102、终端103、终端104、终端105可通过有线网络或无线网络进行通信,终端102、终端103、终端104、终端105之间可通过有线网络或无线网络进行通信。虽然图1中仅示出了终端102、终端103、终端104、终端105四个终端,然而实际上,该实施环境所包括的终端并不仅限于上述四个。
请参考图2,图2为即时通讯系统应用于局域网时,本发明实施例提供的状态更新消息的推送方法所涉及的实施环境的示意图。参见图2,该实施例环境包括:第一终端201、第二终端202、第二终端203及第二终端204等。
其中,第一终端201为状态更新的用户所在的终端,第二终端202、第二终端203、第二终端204为与状态更新的用户具有关注关系的用户所在的终端。第一终端201、第二终端202、第二终端203、第二终端204上安装同一类型的即时通讯应用,基于所安装的即时通讯应用,第一终端201、第二终端202、第二终端203、第二终端204之间可彼此进行通信。第一终端201、第二终端202、第二终端203、第二终端204可以为智能手机、平板电脑、台式电脑、笔记本电脑等,本实施例不对第一终端201、第二终端202、第二终端203、第二终端204的产品类型作具体的限定。在实际应用中,第一终端201、第二终端202、第二终端203、第二终端204的产品类型可以相同,也可以不同,本实施例对此不作具体的限定。
上述第一终端201、第二终端202、第二终端203、第二终端204之间可在局域网内进行通信。虽然图1中仅示出了第一终端201、第二终端202、第二终端203、第二终端204四个终端,然而实际上,该实施环境所包括的终端并不仅限于上述四个。
基于图1所示的实施环境,本发明实施例提供的一种状态更新消息的推送方法,参见图3,本实施例提供的方法流程包括:
301、接收指定群组内多个第二用户发送的联系信息,联系信息中至少携带第一用户标识及第二用户标识,联系信息由第二用户在与第一用户的交互过程中获取。
302、根据第一用户标识和多个第二用户标识,建立第一用户的联系列表。
303、接收第一用户发送的状态更新消息,状态更新消息中至少携带第一用户更新后的状态。
304、将状态更新消息推送至联系列表中每个第二用户标识对应的第二用户,由每个第二用户将第一用户的状态更新为更新后的状态。
本发明实施例提供的方法,在接收到第一用户的状态更新消息时,根据第一用户的联系列表,对状态更新消息进行有针对性地推送,在确保第二用户及时获取到第一用户最新状态的前提下,避免了全量推送造成的网络资源浪费,节省了网络资源。另外,第一用户的状态更新过程在后台进行,第二用户并不会感知到,因而该种状态更新消息的推送方式,避免了对第二用户的打扰。
在本发明的另一个实施例中,根据第一用户标识和多个第二用户标识,建立第一用户的联系列表,包括:
按照接收时间顺序,将多个第二用户标识添加到第一用户标识对应的联系列表中,得到第一用户的联系列表。
在本发明的另一个实施例中,该方法还包括:
根据多个第二用户的属性信息,将联系列表中的多个第二用户标识划分到不同的组内;
以组为单位,对联系列表进行初始化。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
基于图1所示的实施环境,本发明实施例提供了一种状态更新消息的推送方法,参见图4,本发明实施例提供的方法流程包括:
401、在与指定群组内第一用户的交互过程中,获取第一用户标识。
402、向服务器发送联系信息,联系信息中至少携带第一用户标识及第二用户标识,联系信息用于服务器建立第一用户的联系列表。
403、接收服务器根据联系列表所推送的状态更新消息,状态更新消息中至少携带第一用户更新后的状态。
404、将第一用户的状态更新为更新后的状态。
本发明实施例提供的方法,第二用户通过向服务器发送联系信息,由服务器建立第一用户的联系列表,当接收到服务器根据第一用户的联系列表所推送的状态更新消息,对第一用户的状态进行更新,节省了网络资源。另外,第一用户的状态更新过程在后台进行,第二用户并不会感知到,因而该种状态更新消息的推送方式,避免了对第二用户的打扰。
在本发明的另一个实施例中,在与指定群组内第一用户的交互过程中,获取第一用户标识,包括:
在与第一用户通信时,获取第一用户标识。
在本发明的另一个实施例中,在与指定群组内第一用户的交互过程中,获取第一用户标识,包括:
当检测到对第一用户聊天窗口的打开操作时,获取第一用户标识。
在本发明的另一个实施中,在与指定群组内第一用户的交互过程中,获取第一用户标识,包括:
当首次在联系人界面上检测到第一用户时,获取第一用户标识。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
基于图2所示的实施环境,本发明实施例提供了一种状态更新消息的推送方法,参见图5,本发明实施例提供的方法流程包括:
501、接收指定群组内多个第二用户发送的联系信息,联系信息中至少携带第一用户标识及第二用户标识,联系信息由第二用户在与第一用户的交互过程中获取。
502、根据第一用户标识和多个第二用户标识,建立第一用户的联系列表。
503、当监测到第一用户的状态变化时,生成状态更新消息,状态更新消息中至少携带第一用户的更新后的状态。
504、将状态更新消息推送至联系列表中每个第二用户标识对应的第二用户,由每个第二用户将第一用户的状态更新为更新后的状态。
本发明实施例提供的方法,在接收到第一用户的状态更新消息时,根据第一用户的联系列表,对状态更新消息进行有针对性地推送,在确保第二用户及时获取到第一用户最新状态的前提下,避免了全量推送造成的网络资源浪费,节省了网络资源。另外,第一用户的状态更新过程在后台进行,第二用户并不会感知到,因而该种状态更新消息的推送方式,避免了对第二用户的打扰。
在本发明的另一个实施例中,根据第一用户标识和多个第二用户标识,建立第一用户的联系列表,包括:
按照接收时间顺序,将多个第二用户标识添加到第一用户标识对应的联系列表中,得到第一用户的联系列表。
在本发明的另一个实施例中,该方法还包括:
根据多个第二用户的属性信息,将联系列表中的多个第二用户标识划分到不同的组内;
以组为单位,对联系列表进行初始化。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
基于图2所示的实施环境,本发明实施例提供了一种状态更新消息的推送方法,参见图6,本发明实施例提供的方法流程包括:
601、在与指定群组内第一用户的交互过程中,获取第一用户标识。
602、向第一用户发送联系信息,联系信息中至少携带第一用户标识及第二用户标识,联系信息用于第一用户建立第一用户的联系列表。
603、接收第一用户根据联系列表所推送的状态更新消息,状态更新消息中至少携带第一用户更新后的状态。
604、将第一用户的状态更新为更新后的状态。
本发明实施例提供的方法,第二用户通过向第一用户发送联系信息,由第一用户建立第一用户的联系列表,当接收到第一用户根据第一用户的联系列表所推送的状态更新消息,对第一用户的状态进行更新,节省了网络资源。另外,第一用户的状态更新过程在后台进行,第二用户并不会感知到,因而该种状态更新消息的推送方式,避免了对第二用户的打扰。
在本发明的另一个实施例中,在与指定群组内第一用户的交互过程中,获取第一用户标识,包括:
在与第一用户通信时,获取第一用户标识。
在本发明的另一个实施例中,在与指定群组内第一用户的交互过程中,获取第一用户标识,包括:
当检测到对第一用户聊天窗口的打开操作时,获取第一用户标识。
在本发明的另一个实施例中,在与指定群组内第一用户的交互过程中,获取第一用户标识,包括:
当首次在联系人界面上检测到第一用户时,获取第一用户标识。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
基于图1所示的实施环境,本发明实施例提供了一种状态更新消息的推送方法,该方法以服务器和第二用户所在的终端执行本发明为例,参见图7,本发明实施例提供的方法流程包括:
701、在与指定群组内第一用户的交互过程中,终端获取第一用户标识。
其中,指定群组为基于即时通讯系统为企业用户所创建的群组,企业中的每一个员工即为指定群组内的一个用户。本实施例涉及了多个用户,为了便于将多个用户进行区分,将状态发生变化的用户称为第一用户,将与第一用户交互过的用户称为第二用户。另外,为了能够将不同用户区分开来,指定群组内的每个用户都具有一个用户标识,该用户标识可以为注册账号等等。
在第二用户与指定群组内第一用户的交互过程中,第二用户所在的终端获取第一用户标识可采用如下几种方式:
第一种方式、当检测到与第一用户的通信,如向第一用户发送消息,或者接收到第一用户发送的消息时,终端可在与第一用户通信时,获取第一用户标识。
第二种方式、当检测到对第一用户聊天界面的打开操作时,终端可获取第一用户标识。
第三种方式、当首次在联系人界面上检测到第一用户时,终端可获取第一用户标识。
由于指定群组内的用户数量较多,而一个用户在指定群组内所能联系的用户数量是有限的,为了优化每个用户的联系人界面,便于用户快速查找到联系人,在本实施例中,每个用户的联系人界面上仅显示与该用户交互过的其他用户标识。如果第二用户之前未与第一用户交互过,第二用户的联系人界面不会显示第一用户标识,当首次在联系人界面上检测到第一用户时,说明第一用户与第二用户进行了交互,此时终端可获取第一用户标识。
702、终端向服务器发送联系信息。
在本实施中,一个用户与企业内部其他用户的关系可包括关注关系和非关注关系。如果一个用户与其他用户之间的关系为关注关系,说明其他用户与该用户之间的关系较为亲密,当该用户的状态变化时,具有关注关系的其他用户希望获取到该用户的状态变化信息,此时服务器将该用户的状态更新消息推送至具有关注关系的其他用户;如果一个用户与其他用户关系即为非关注关系,说明其他用户与该用户之间的关系较为生疏,当该用户的状态变化时,其他用户也并希望获取用户的状态变化信息,此时服务器不需要将该用户的状态更新消息推送至其他具有非关注关系的用户。
基于企业内部用户之间的不同关系,为了能够对任一用户的状态更新消息进行有针对性的推送,当在与第一用户的交互过程中,获取到第一用户标识后,第二用户所在的终端生成对第一用户的联系信息,并通过网络向服务器发送该联系信息,该联系信息中至少携带第一用户标识及第二用户标识等,用于服务器建立第一用户的联系列表,该第一用户的联系列表中存储了与第一用户具有关注关系的多个第二用户标识,从而在后续过程中,可根据第一用户的联系列表,对第一用户的状态变化消息进行有针对性地推送。
703、当接收到指定群组内多个第二用户发送的联系信息时,服务器根据第一用户标识和多个第二用户标识,建立第一用户的联系列表。
当接收到指定群组内多个第二用户发送的联系信息时,服务器可将多个第二用户标识添加到第一用户标识对应的联系列表中,得到第一用户的联系列表。对于一个联系列表来说,第二用户标识在关注列表中位置能够反映与第一用户的亲密度,且按照从顶端到低端的顺序,与第一用户的亲密度逐渐变低。为确保所建立的第一用户的关注列表能够准确地反映第二用户与第一用户之间的亲密度,服务器可按照接收时间顺序,将多个第二用户标识添加到第一用户标识对应的联系列表中。以任一第二用户标识为例,服务器按照接收时间顺序,将该第二用户标识添加到第一用户标识对应的联系列表中,可分为如下几种情况。
第一种情况、如果第二用户标识已位于联系列表中,服务器可将第二用户标识移动到联系列表的最顶端。
第二种情况、如果第二用户标识未位于联系列表中,服务器直接将第二用户标识添加到联系列表的最顶端。
第三种情况、如果联系列表的存储空间已满且第二用户标识未位于联系列表中,服务器删除位于联系列表最底端的第二用户标识,并将第二用户标识添加到联系列表的最顶端。
当然,除了按照接收时间顺序将多个第二用户标识添加到第一用户标识对应的联系列表中,还可以按照与第一用户的通信次数,将多个第二用户标识添加到第一用户标识对应的联系列表中。具体实施时,可将与第一用户通信次数最多的第二用户标识添加或移动到联系列表的最顶端,依次类推,将与第一用户通信次数最少的第二用户标识添加或移动到联系列表的最低端。当至少两个第二用户与第一用户的通信次数相同时,可结合接收时间,将后接收到的联系信息中所携带的第二用户标识添加或移动到前面,将先接收到的联系信息中所携带的第二用户标识添加或移动到后面。
上述以根据第一用户标识和多个第二用户标识,建立第一用户的联系列表为例进行说明的,对于其他用户的联系列表的建立过程与上述过程相同,具体参见上述对第一用户的联系列表的建立过程,本实施例不再一一说明。
为了便于后续的应用,本实施例还执行对每个用户的联系列表进行存储的步骤,具体存储时,可将每个用户的联系列表存储在服务器对应的存储介质中。另外,本实施例中每个用户的联系列表并不是一成不变的,在后续使用过程中可进行更新。以第一用户的联系列表为例,服务器可通过接收其他用户发送的联系信息,对第一用户的联系列表进行更新;服务器还可每隔预设时长如一星期、一个月将与第一用户的通信次数少于指定次数如3次、5次的用户从第一用户的联系列表中删除。
作为一种可选的实施例,本实施例中服务器可根据多个第二用户的属性信息,如所属的分公司、所属的部门、所在的小组等,将第一用户的联系列表中的多个第二用户划分到不同的组内,进而可以组为单位,对联系列表进行初始化。本实施例提供的方法通过对第一用户的联系列表中的多个第二用户标识进行分组,可在第一用户的属性信息变化时,对第一用户的联系列表进行批量更新。例如,第一用户因工作变动,从企业平台组调到客户端开发组,此时可以企业平台组为单位,对第一用户的联系列表中属于企业平台组的第二用户标识进行初始化,从而实现了对第一用户的联系列表的批量更新,提高了更新速度。
704、服务器接收第一用户发送的状态更新消息,该状态更新消息中至少携带第一用户更新后的状态。
当第一用户自身的状态变化时,如由在线状态变为离线状态,或由在线状态变为忙碌状态等,第一用户所在的终端生成状态更新消息,并将该状态更新消息发送至服务器,服务器接收第一用户发送的状态更新消息,并将该状态更新消息选择性地推送至其他用户。其中,状态更新消息中至少携带第一用户标识、第一用户更新后的状态等。
705、服务器将状态更新消息推送至联系列表中每个第二用户标识对应的第二用户。
基于所获取到的第一用户的联系列表,服务器可将第一用户的状态更新消息推送至联系列表中每个第二用户标识对应的第二用户,从而在保证与第一用户具有关注关系的多个第二用户能够及时获取到第一用户的最新状态的前提下,大大地节省了网络资源。
706、当接收到服务器根据联系列表所推送的状态更新消息时,终端将第一用户的状态更新为更新后的状态。
本步骤所述的终端为第二用户所在的终端。当接收到服务器推送的状态更新消息时,终端根据状态更新消息中所携带的第一用户标识,从第二用户的联系人界面上确定第一用户,进而将第一用户的状态更新为更新后的状态,例如,第一用户的状态为在线状态,更新后的状态为离线状态,第二终端在接收到状态更新消息时,将第一用户的状态由在线状态更改为离线状态。
采用本实施例提供的方法,并不会将全部的用户显示在一个用户的联系人界面上,而仅显示与该用户联系过的其他用户,参见图8,在用户小芳的联系人界面上,仅显示与小芳联系过的用户,如小明、小花、露西、梅梅等等。初始时刻,如果小明的状态为在线状态,当小明的状态变为忙碌状态后,服务器接收到小明发送的状态更新消息,获取到小明的联系列表,该联系列表中存储有与小芳的用户标识,之后,服务器将小明发送的状态更新消息发送至包括小芳在内的多个用户,小芳所在的终端接收到该状态更新消息后,在联系人界面上将小明的状态更改为忙碌状态。
本发明实施例提供的方法,第二用户通过向服务器发送联系信息,由服务器建立第一用户的联系列表,当接收到服务器根据第一用户的联系列表所推送的状态更新消息,对第一用户的状态进行更新,节省了网络资源。另外,第一用户的状态更新过程在后台进行,第二用户并不会感知到,因而该种状态更新消息的推送方式,避免了对第二用户的打扰。
基于图2所示的实施环境,本发明实施例提供了一种状态更新消息的推送方法,以第一终端和第二终端执行本方法为例,其中,第一终端为状态发生变化的第一用户所在的终端,第二终端为与第一用户具有关注关系的第二用户所在的终端,参见图9,本发明实施例提供的方法流程包括:
901、在与指定群组内第一用户的交互过程中,第二终端获取第一用户标识。
本步骤第二终端获取第一用户标识的方式与上述步骤701相同,具体参见上述步骤701,此处不再赘述。
902、第二终端向第一用户发送联系信息。
当获取到第一用户标识后,第二终端在局域网内向第一用户发送联系信息。其中,联系信息中至少携带第一用户标识及第二用户标识等。
903、当接收到指定群组内多个第二用户发送的对第一用户的联系信息时,第一终端根据第一用户标识和多个第二用户标识,建立第一用户的联系列表。
本步骤中第一终端建立第一用户的联系列表的方式与上述步骤703相同,具体参见上述703。
为了便于后续应用,当建立第一用户的联系列表后,第一终端将所建立的第一用户的联系列表存储在第一终端对应的存储介质中。另外,本实施例中每个用户的联系列表并不是一成不变的,在后续使用过程中可进行更新。以第一用户的联系列表为例,第一终端可通过接收其他用户发送的联系信息,对第一用户的联系列表进行更新;第一终端还可每隔预设时长如一星期、一个月将与第一用户的通信次数少于指定次数如3次、5次的用户从第一用户的联系列表中删除。
作为一种可选的实施例,本实施例中第一终端可根据多个第二用户的属性信息,如所属的分公司、所属的部门、所在的小组等,将第一用户的联系列表中的多个第二用户划分到不同的组内,进而可以组为单位,对联系列表进行初始化。本实施例提供的方法通过对第一用户的联系列表中的多个第二用户标识进行分组,可在第一用户的属性信息变化时,对第一用户的联系列表进行批量更新。
904、当监测到第一用户的状态变化时,第一终端生成状态更新消息。
第一终端实时监测第一用户的状态,当监测到第一用户的状态变化时,第一终端生成状态更新消息。其中,状态更新消息中至少携带第一用户标识、第一用户更新后的状态等。
905、第一终端将状态更新消息推送至联系列表中每个第二用户标识对应的第二用户。
基于所获取到的第一用户的关注列表,第一终端将第一用户的状态更新消息推送至联系列表中每个第二用户标识对应的第二用户,从而在保证与第一用户具有关注关系的多个第二用户能够及时获取到第一用户的最新状态的前提下,大大地节省了网络资源。
906、当接收到第一用户根据联系列表所推送的状态更新消息时,第二终端将第一用户的状态更新为更新后的状态。
当接收到第一终端推送的状态更新消息时,第二终端根据状态更新消息中所携带的第一用户标识,从第二用户的联系人界面上确定第一用户,进而将第一用户的状态更新为更新后的状态,例如,第一用户的状态为在线状态,更新后的状态为离线状态,第二终端在接收到状态更新消息时,将第一用户的状态由在线状态更改为离线状态。
本发明实施例提供的方法,在接收到第一用户的状态更新消息时,根据第一用户的联系列表,对状态更新消息进行有针对性地推送,在确保第二用户及时获取到第一用户最新状态的前提下,避免了全量推送造成的网络资源浪费,节省了网络资源。另外,第一用户的状态更新过程在后台进行,第二用户并不会感知到,因而该种状态更新消息的推送方式,避免了对第二用户的打扰。
参见图10,本发明实施例提供了一种服务器,该服务器包括:
第一接收模块1001,用于接收指定群组内多个第二用户发送的联系信息,联系信息中至少携带第一用户标识及多个第二用户标识,联系信息由第二用户在与第一用户的交互过程中获取;
建立模块1002,用于根据第一用户标识和多个第二用户标识,建立第一用户的联系列表;
第二接收模块1003,用于接收第一用户发送的状态更新消息,状态更新消息中至少携带第一用户更新后的状态;
推送模块1004,用于将状态更新消息推送至联系列表中每个第二用户标识对应的第二用户,由每个第二用户将第一用户的状态更新为更新后的状态。
在本发明的另一个实施例中,建立模块1002,用于按照接收时间顺序,将多个第二用户标识添加到所述第一用户标识对应的联系列表中,得到第一用户的联系列表。
在本发明的另一个实施例中,服务器还包括:
群组划分模块,用于根据多个第二用户的属性信息,将联系列表中的多个所述第二用户标识划分到不同的组内;
初始化模块,用于以组为单位,对联系列表进行初始化。
综上所述,本发明实施例提供的服务器,在接收到第一用户的状态更新消息时,根据第一用户的联系列表,对状态更新消息进行有针对性地推送,在确保第二用户及时获取到第一用户最新状态的前提下,避免了全量推送造成的网络资源浪费,节省了网络资源。另外,第一用户的状态更新过程在后台进行,第二用户并不会感知到,因而该种状态更新消息的推送方式,避免了对第二用户的打扰。
参见图11,本发明实施例提供了一种终端,该终端为第二用户所在的终端,该终端包括:
获取模块1101,用于在与指定群组内第一用户的交互过程中,获取第一用户标识;
发送模块1102,用于向服务器发送的联系信息,联系信息中至少携带第一用户标识及第二用户标识,联系信息用于服务器建立第一用户的联系列表;
接收模块1103,用于接收服务器根据第一用户的联系列表所推送的状态更新消息,状态更新消息中至少携带第一用户更新后的状态;
更新模块1104,用于将第一用户的状态更新为更新后的状态。
在本发明的另一个实施中,获取模块1101,用于在与第一用户通信时,获取第一用户标识。
在本发明的另一个实施例中,获取模块1101,用于当检测到对第一用户的聊天界面的打开操作时,获取第一用户标识。
在本发明的另一个实施例中,获取模块1101,用于当首次在联系人界面上检测到第一用户时,获取第一用户标识。
本发明实施例提供的终端,第二用户通过向服务器发送联系信息,由服务器建立第一用户的联系列表,当接收到服务器根据第一用户的联系列表所推送的状态更新消息,对第一用户的状态进行更新,节省了网络资源。另外,第一用户的状态更新过程在后台进行,第二用户并不会感知到,因而该种状态更新消息的推送方式,避免了对第二用户的打扰。
参见图12,本发明实施例提供了一种第一终端,该第一终端为第一用户所在的终端,该第一终端包括:
接收模块1201,用于接收指定群组内多个第二用户发送的联系信息,联系信息中至少携带第一用户标识及第二用户标识,联系信息由第二用户在与第一用户的交互过程中获取;
建立模块1202,用于根据第一用户标识和多个第二用户标识,建立第一用户的联系列表;
生成模块1203,用于当监测到第一用户的状态变化时,生成状态更新消息,状态更新消息中至少携带第一用户的更新后的状态;
推送模块1204,用于将状态更新消息推送至联系列表中每个第二用户标识对应的第二用户,由每个第二用户将第一用户的状态更新为更新后的状态。
在本发明的另一个实施例中,建立模块1202,用于按照接收时间顺序,将多个第二用户标识添加到第一用户标识对应的联系列表中,得到第一用户的联系列表。
在本发明的另一个实施例中,第一终端还包括:
群组划分模块,用于根据多个第二用户的属性信息,将联系列表中的多个第二用户标识划分到不同的组内;
初始化模块,用于以组为单位,对联系列表进行初始化。
本发明实施例提供的终端,在接收到第一用户的状态更新消息时,根据第一用户的联系列表,对状态更新消息进行有针对性地推送,在确保第二用户及时获取到第一用户最新状态的前提下,避免了全量推送造成的网络资源浪费,节省了网络资源。另外,第一用户的状态更新过程在后台进行,第二用户并不会感知到,因而该种状态更新消息的推送方式,避免了对第二用户的打扰。
参见图13,本发明实施例提供了一种第二终端,该第二终端为第二用户所在的终端,该第二终端包括:
获取模块1301,用于在与指定群组内第一用户的交互过程中,获取第一用户标识;
发送模块1302,用于向第一用户发送联系信息,联系信息中至少携带第一用户标识及第二用户标识,联系信息用于第一用户建立第一用户的联系列表;
接收模块1303,用于接收第一用户根据联系列表所推送的状态更新消息,状态更新消息中至少携带第一用户更新后的状态;
更新模块1304,用于将第一用户的状态更新为更新后的状态。
在本发明的另一个实施例中,获取模块1301,用于在与第一用户通信时,获取第一用户标识。
在本发明的另一个实施例中,获取模块1301,用于当检测到对第一用户聊天窗口的打开操作时,获取第一用户标识。
在本发明的另一个实施例中,获取模块1301,用于当首次在联系人界面上检测到第一用户时,获取第一用户标识。
本发明实施例提供的终端,第二用户通过向第一用户发送联系信息,由第一用户建立第一用户的联系列表,当接收到第一用户根据第一用户的联系列表所推送的状态更新消息,对第一用户的状态进行更新,节省了网络资源。另外,第一用户的状态更新过程在后台进行,第二用户并不会感知到,因而该种状态更新消息的推送方式,避免了对第二用户的打扰。
参见图14,其示出了本发明实施例所涉及的状态更新消息的推送终端的结构示意图,该终端可以用于实施上述实施例中提供的状态更新消息的推送方法。具体来讲:
终端1400可以包括RF(Radio Frequency,射频)电路110、包括有一个或一个以上计算机可读存储介质的存储器120、输入单元130、显示单元140、传感器150、音频电路160、WiFi(Wireless Fidelity,无线保真)模块170、包括有一个或者一个以上处理核心的处理器180、以及电源190等部件。本领域技术人员可以理解,图14中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器180处理;另外,将涉及上行的数据发送给基站。通常,RF电路110包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(Code Division Multiple Access,码分多址)、WCDMA(Wideband Code Division Multiple Access,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(Short Messaging Service,短消息服务)等。
存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端1400的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器120还可以包括存储器控制器,以提供处理器180和输入单元130对存储器120的访问。
输入单元130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元130可包括触敏表面131以及其他输入设备132。触敏表面131,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面131上或在触敏表面131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面131。除了触敏表面131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元140可用于显示由用户输入的信息或提供给用户的信息以及终端1400的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元140可包括显示面板141,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板141。进一步的,触敏表面131可覆盖显示面板141,当触敏表面131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图14中,触敏表面131与显示面板141是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面131与显示面板141集成而实现输入和输出功能。
终端1400还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在终端1400移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端1400还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路160、扬声器161,传声器162可提供用户与终端1400之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一终端,或者将音频数据输出至存储器120以便进一步处理。音频电路160还可能包括耳塞插孔,以提供外设耳机与终端1400的通信。
WiFi属于短距离无线传输技术,终端1400通过WiFi模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图14示出了WiFi模块170,但是可以理解的是,其并不属于终端1400的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器180是终端1400的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行终端1400的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理核心;可选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
终端1400还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源190还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,终端1400还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端1400的显示单元是触摸屏显示器,终端1400还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。所述一个或者一个以上程序包含用于执行以下操作的指令:
在与指定群组内第一用户的交互过程中,获取第一用户标识;
向服务器发送联系信息,联系信息中至少携带第一用户标识及第二用户标识,联系信息用于服务器建立第一用户的联系列表;
接收服务器根据联系列表所推送的状态更新消息,状态更新消息中至少携带第一用户更新后的状态;
将第一用户的状态更新为更新后的状态。
假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,终端的存储器中,还包含用于执行以下操作的指令:
在与指定群组内第一用户的交互过程中,获取第一用户标识,包括:
在与第一用户通信时,获取第一用户标识。
假设上述为第二种可能的实施方式,则在第二种可能的实施方式作为基础而提供的第三种可能的实施方式中,终端的存储器中,还包含用于执行以下操作的指令:
在与指定群组内第一用户的交互过程中,获取第一用户标识,包括:
当检测到对第一用户聊天窗口的打开操作时,获取第一用户标识。
假设上述为第三种可能的实施方式,则在第三种可能的实施方式作为基础而提供的第四种可能的实施方式中,终端的存储器中,还包含用于执行以下操作的指令:
在与指定群组内第一用户的交互过程中,获取第一用户标识,包括:
当首次在联系人界面上检测到第一用户时,获取第一用户标识。
本发明实施例提供的终端,第二用户通过向服务器发送对第一用户的联系信息,由服务器建立第一用户的联系列表,当接收到服务器根据第一用户的联系列表所推送的状态更新消息,对第一用户的状态进行更新,不仅节省了网络资源,而且避免了用户被过度打扰,使得状态更新消息的推送更有针对性。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中的存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入终端中的计算机可读存储介质。该计算机可读存储介质存储有一个或者一个以上程序,该一个或者一个以上程序被一个或者一个以上的处理器用来执行状态更新消息的推送方法,该方法包括:
在与指定群组内第一用户的交互过程中,获取第一用户标识;
向服务器发送联系信息,联系信息中至少携带第一用户标识及第二用户标识,联系信息用于服务器建立第一用户的联系列表;
接收服务器根据联系列表所推送的状态更新消息,状态更新消息中至少携带第一用户更新后的状态;
将第一用户的状态更新为更新后的状态。
假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,终端的存储器中,还包含用于执行以下操作的指令:
在与指定群组内第一用户的交互过程中,获取第一用户标识,包括:
在与第一用户通信时,获取第一用户标识。
假设上述为第二种可能的实施方式,则在第二种可能的实施方式作为基础而提供的第三种可能的实施方式中,终端的存储器中,还包含用于执行以下操作的指令:
在与指定群组内第一用户的交互过程中,获取第一用户标识,包括:
当检测到对第一用户聊天窗口的打开操作时,获取第一用户标识。
假设上述为第三种可能的实施方式,则在第三种可能的实施方式作为基础而提供的第四种可能的实施方式中,终端的存储器中,还包含用于执行以下操作的指令:
在与指定群组内第一用户的交互过程中,获取第一用户标识,包括:
当首次在联系人界面上检测到第一用户时,获取第一用户标识。
本发明实施例提供的计算机可读存储介质,第二用户通过向服务器发送对第一用户的联系信息,由服务器建立第一用户的联系列表,当接收到服务器根据第一用户的联系列表所推送的状态更新消息,对第一用户的状态进行更新,不仅节省了网络资源,而且避免了用户被过度打扰,使得状态更新消息的推送更有针对性。
本发明实施例中提供了一种图形用户接口,该图形用户接口用在状态更新消息的推送终端上,该执行状态更新消息的推送终端包括触摸屏显示器、存储器和用于执行一个或者一个以上的程序的一个或者一个以上的处理器;该图形用户接口包括:
在与指定群组内第一用户的交互过程中,获取第一用户标识;
向服务器发送联系信息,联系信息中至少携带第一用户标识及第二用户标识,联系信息用于服务器建立第一用户的联系列表;
接收服务器根据联系列表所推送的状态更新消息,状态更新消息中至少携带第一用户更新后的状态;
将第一用户的状态更新为更新后的状态。
本发明实施例提供的图形用户接口,第二用户通过向服务器发送对第一用户的联系信息,由服务器建立第一用户的联系列表,当接收到服务器根据第一用户的联系列表所推送的状态更新消息,对第一用户的状态进行更新,不仅节省了网络资源,而且避免了用户被过度打扰,使得状态更新消息的推送更有针对性。
图15是根据一示例性实施例示出的一种用于状态更新消息的推送的服务器。参照图15,服务器1500包括处理组件1522,其进一步包括一个或多个处理器,以及由存储器1532所代表的存储器资源,用于存储可由处理组件1522的执行的指令,例如应用程序。存储器1532中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1522被配置为执行指令,以执行上述状态更新消息的推送方法中服务器所执行的功能,该方法包括:
接收指定群组内多个第二用户发送的联系信息,联系信息中至少携带第一用户标识及第二用户标识,联系信息由第二用户在与第一用户的交互过程中获取;
根据第一用户标识和多个第二用户标识,建立第一用户的联系列表;
接收第一用户发送的状态更新消息,状态更新消息中至少携带第一用户更新后的状态;
将状态更新消息推送至联系列表中每个第二用户标识对应的第二用户,由每个第二用户将第一用户的状态更新为更新后的状态。
在本发明的另一个实施例中,根据第一用户标识和多个第二用户标识,建立第一用户的联系列表,包括:
按照接收时间顺序,将多个第二用户标识添加到第一用户标识对应的联系列表中,得到第一用户的联系列表。
在本发明的另一个实施例中,该方法还包括:
根据多个第二用户的属性信息,将联系列表中的多个第二用户标识划分到不同的组内;
以组为单位,对联系列表进行初始化。
服务器1500还可以包括一个电源组件1526被配置为执行服务器1500的电源管理,一个有线或无线网络接口1550被配置为将服务器1500连接到网络,和一个输入输出(I/O)接口1558。服务器1500可以操作基于存储在存储器1532的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本发明实施例提供的服务器,根据第一用户和第二用户在交互过程中所获取到的信息,建立第一用户的联系列表,在接收到第一用户发送的状态更新消息后,依据第一用户的联系列表,对第一用户的状态更新消息进行发送,不仅节省了网络资源,而且避免了用户被过度打扰,使得状态更新消息的推送更有针对性。
需要说明的是:上述实施例提供的终端、服务器在推送状态更新消息时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将终端、服务器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的状态更新消息的推送方法与终端、服务器实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。