一种即时通讯未读消息的同步方法和系统与流程

文档序号:18329115发布日期:2019-08-03 11:50阅读:437来源:国知局
一种即时通讯未读消息的同步方法和系统与流程

本申请实施例涉及通讯的技术领域,特别是涉及一种即时通讯未读消息的同步方法和一种即时通讯未读消息的同步系统。



背景技术:

随着互联网技术和通讯技术的不断发展以及互联网用户的不断增加,互联网领域和通讯领域得到了空前的发展,互联网终端的用户已经达到了几十亿。

基于互联网技术和通讯技术的通讯系统已经被越来越多的人接受并在人们的工作、学习、日常生活中等各方面的使用越来越普遍,可以说,通讯系统成为人们生活中不可以缺少的一部分。特别是近年来移动设备(例如智能手机、平板电脑pad)的风靡,在各个行业领域,特别是在即时通信(instantmessaging,im)中,需要使用这种便携的移动设备协同进行工作的需求也越来越强烈。

但是,在现有技术中,移动终端现有技术不能无缝同步各个终端的消息,导致在各个终端上的消息状态不一样,严重影响用户体验。以即时通讯为例,即时通讯可以支持两人或多人同时会话,如果当前用户离线而会话中的其他用户继续发言,或者当前因为忙于其他事情而没有查看这些会话,则会产生未读消息,即没有被当前用户阅读过聊天消息。当前用户在终端a上登录并查看了未读消息(如好友的留言消息),该未读消息的状态则为已读。但是当前用户再登录终端b,可能发现刚在终端a看过的消息(如上述好友的留言消息)在设备b上仍是未读状态。未读消息的重复发送,不仅增加了服务器和终端的资源占用,并且造成用户的重复阅读,极大地影响了用户体验。

因此,目前需要本领域技术人员解决的一个技术问题在于,提供一种未读消息的同步机制,用以对不同终端进行未读消息的同步,降低服务器和终端的资源占用,并提高用户体验。



技术实现要素:

本申请提供了一种即时通讯未读消息的同步方法,用以对不同终端进行未读消息的同步,降低服务器和终端的资源占用,并提高用户体验。

相应的,本申请还提供了一种即时通讯未读消息的同步系统,用以保证上述方法的实现及应用。

为了解决上述问题,本申请公开了一种即时通讯未读消息的同步方法,包括:

在当前终端侧登录即时通讯账号时,从服务器侧获取所述账号的会话中未读消息的信息;

在当前终端侧显示所述未读消息的信息;

其中,所述未读消息为会话中时间信息大于第一时间戳的消息,所述第一时间戳为所述账号提交的会话的前一次读取的消息的时间信息,所述账号的会话对应的第一时间戳存储于服务器侧;

在当前终端侧基于所述账号在会话中进行消息交互时,判断当前正在进行的会话对应的窗口是否获得焦点;

若是,则判定所述窗口中当前显示的消息已读。

优选地,所述未读消息的信息包括会话的第一时间戳、会话的未读消息的数量和/或会话的最后一条消息。

优选地,其它终端为除当前终端以外,登录了同一即时通讯账号,或登录过同一即时通讯账号的终端。

优选地,还包括:

采用所述未读消息的信息中的第一时间戳更新当前终端侧中会话的第二时间戳。

优选地,还包括:

若窗口中当前显示的消息已读,则将所述已读消息的时间信息发送至服务器侧;所述服务器用于采用所述时间信息更新所述会话对应的第一时间戳,将所述会话中时间信息大于所述第一时间戳的消息确定为未读消息。

优选地,还包括:

判断当前正在进行的会话对应的窗口是否超过预设区域被覆盖;

若否,则判定所述窗口中当前显示的消息已读。

优选地,还包括:

采用所述已读消息的时间信息更新当前终端侧存储的所述会话对应的第二时间戳。

优选地,还包括:

接收服务器侧发送的所述账号的会话对应的第一时间戳;所述第一时间戳为其他终端侧发送的所述会话接收到最新已读消息的时间信息。

优选地,还包括:

采用所述会话对应的第一时间戳更新当前终端侧存储的所述会话对应的第二时间戳。

优选地,还包括:

当进入一个或多个会话对应的窗口时,从服务器侧下载所述一个或多个会话对应的漫游消息;所述漫游消息包括所述账号发送的消息和接收的消息;

将所述发送的消息确定为已读消息,并显示所述已读消息;

和/或,

将时间信息大于所述第二时间戳的接收的消息确定为未读消息,并显示所述未读消息;

和/或,

将时间信息小于或等于所述第二时间戳的接收的消息确定为已读消息,并显示所述已读消息。

优选地,所述判断当前正在进行的会话对应的窗口是否获得焦点,包括:

判断所述当前正在进行的会话对应的窗口是否在当前终端的最上层;

若是,则判定所述当前正在进行的会话对应的窗口获得焦点。

本申请还公开了一种即时通讯未读消息的同步方法,包括:

在当前终端侧登录即时通讯账号时,提取所述账号对应的会话中未读消息的信息;

将所述账号对应的会话中未读消息的信息发送至当前终端侧;

其中,所述未读消息为会话中时间信息大于所述第一时间戳的消息,所述第一时间戳为所述账号提交的会话的前一次读取的消息的时间信息,所述账号的会话对应的第一时间戳存储于服务器侧。

优选地,所述未读消息的信息包括会话的第一时间戳、会话的未读消息的数量和/或会话的最后一条消息。

优选地,所述其它终端为除当前终端以外,登录了同一即时通讯账号,或登录过同一即时通讯账号的终端。

优选地,还包括:

接收当前终端侧发送的已读消息的时间信息;其中,所述已读消息的时间信息为在当前终端侧基于所属账号并在会话中进行消息交互时,判断的当前正在进行的会话中接收到的为已读的消息的时间信息;

采用所述时间信息更新所述会话对应的第一时间戳;

将所述会话中时间信息大于所述第一时间戳的消息确定为未读消息。

优选地,还包括:

采用所述第一时间戳统计所述会话的未读消息的信息。

优选地,还包括:

在多个终端侧登录所述账号,并且当前终端侧在会话中进行消息交互时,接收当前终端侧发送的所述窗口中当前显示的已读消息的时间信息;

采用所述时间信息更新所述会话对应的第一时间戳;

将所述会话对应的第一时间戳发送至其他终端侧。

本申请还公开了一种即时通讯未读消息的同步系统,包括:

未读消息信息获取模块,用于在当前终端侧登录即时通讯账号时,从服务器侧获取所述账号的会话中未读消息的信息;

未读消息信息显示模块,用于在当前终端侧显示所述未读消息的信息;

其中,所述未读消息为会话中时间信息大于所述第一时间戳的消息,所述第一时间戳为所述账号提交的会话的前一次读取的消息的时间信息,所述账号的会话对应的第一时间戳存储于服务器侧;

焦点判断模块,用于在当前终端侧基于所述账号在会话中进行消息交互时,判断当前正在进行的会话对应的窗口是否获得焦点;若是,则调用已读判定子模块;

已读判定模块,用于判定所述窗口中当前显示的消息已读。

优选地,所述未读消息的信息包括会话的第一时间戳、会话的未读消息的数量和/或会话的最后一条消息。

优选地,所述其它终端为除当前终端以外,登录了同一即时通讯账号,或登录过同一即时通讯账号的终端。

优选地,还包括:

第一更新模块,用于采用所述未读消息的信息中的第一时间戳更新当前终端侧中会话的第二时间戳。

优选地,还包括:

时间信息发送模块,用于若窗口中当前显示的消息已读,则将所述已读消息的时间信息发送至服务器侧;所述服务器用于采用所述时间信息更新所述会话对应的第一时间戳,将所述会话中时间信息大于所述第一时间戳的消息确定为未读消息。

优选地,还包括:

覆盖判断模块,用于判断当前正在进行的会话对应的窗口是否超过预设区域被覆盖;若否,则调用已读判定子模块。

优选地,还包括:

第二更新模块,用于采用所述已读消息的时间信息更新当前终端侧存储的所述会话对应的第二时间戳。

优选地,还包括:

第一时间戳接收模块,用于接收服务器侧发送的所述账号的会话对应的第一时间戳;所述第一时间戳为其他终端侧发送的所述会话接收到最新已读消息的时间信息。

优选地,还包括:

第三更新模块,用于采用所述会话对应的第一时间戳更新当前终端侧存储的所述会话对应的第二时间戳。

优选地,还包括:

漫游消息下载模块,用于在进入一个或多个会话对应的窗口时,从服务器侧下载所述一个或多个会话对应的漫游消息;所述漫游消息包括所述账号发送的消息和接收的消息;

第一已读消息处理子模块,用于将所述发送的消息确定为已读消息,并显示所述已读消息;

和/或,

未读消息处理子模块,用于将时间信息大于所述第二时间戳的接收的消息确定为未读消息,并显示所述未读消息;

和/或,

第二已读消息处理子模块,用于将时间信息小于或等于所述第二时间戳的接收的消息确定为已读消息,并显示所述已读消息。

优选地,所述焦点判断模块,包括:

窗口位置判断子模块,用于判断所述当前正在进行的会话对应的窗口是否在当前终端的最上层;

获得焦点判定子模块,用于若是,则判定所述当前正在进行的会话对应的窗口获得焦点。

本申请还公开了一种即时通讯未读消息的同步系统,包括:

未读消息信息提取模块,用于在当前终端侧登录即时通讯账号时,提取所述账号对应的会话中未读消息的信息;

未读消息信息发送模块,用于将所述账号对应的会话中未读消息的信息发送至当前终端侧;

其中,所述未读消息为会话中时间信息大于所述第一时间戳的消息,所述第一时间戳为所述账号提交的会话的前一次读取的消息的时间信息,所述账号的会话对应的第一时间戳存储于服务器侧。

优选地,所述未读消息的信息包括会话的第一时间戳、会话的未读消息的数量和/或会话的最后一条消息。

优选地,所述其它终端为除当前终端以外,登录了同一即时通讯账号,或登录过同一即时通讯账号的终端。

优选地,还包括:

第一时间信息接收模块,用于接收当前终端侧发送的已读消息的时间信息;其中,所述已读消息的时间信息为在当前终端侧基于所属账号并在会话中进行消息交互时,判断的当前正在进行的会话中接收到的为已读的消息的时间信息;

第四更新模块,用于采用所述时间信息更新所述会话对应的第一时间戳;

未读消息确定模块,用于将所述会话中时间信息大于所述第一时间戳的消息确定为未读消息。

优选地,还包括:

未读消息信息统计模块,用于采用所述第一时间戳统计所述会话的未读消息的信息。

优选地,还包括:

第二时间信息接收模块,用于在多个终端侧登录所述账号,并且当前终端侧在会话中进行消息交互时,接收当前终端侧发送的所述窗口中当前显示的已读消息的时间信息;

第五更新模块,用于采用所述时间信息更新所述会话对应的第一时间戳;

第一时间戳发送模块,用于将所述会话对应的第一时间戳发送至其他终端侧。

与背景技术相比,本申请包括以下优点:

本申请实施例中,服务器对于即时通讯账号的每一个会话都可以对应存储有第一时间戳,而第一时间戳为当前终端侧或其它终端侧针对所述账号提交的每一个会话中接收到最新已读消息的时间信息,则可以将即时通讯账号会话中时间信息大于第一时间戳的消息确定为未读消息,当前终端登录即时通讯账号时与当前终端同步未读消息的信息,而基于第一时间戳的未读消息同步机制,避免了未读消息在不同终端上重复发送的问题,也避免了未读消息的信息的统计不同步的问题,减少了服务器和终端的系统资源占用,实现了不同终端未读消息的信息的无缝隙同步,提高了用户体验。

本申请实施例在当前终端侧基于账号在会话中进行消息交互时,判断当前正在进行的会话对应的窗口是否获得焦点,若是,则判定窗口中当前显示的消息已读,在判定窗口中当前显示的消息已读时,将其时间信息发送至服务器更新第一时间戳,应用本申请实施例,其他终端亦会如此更新第一时间戳,使得服务器的第一时间戳为当前终端侧或其它终端侧针对所述账号提交的每一个会话中接收到最新已读消息的时间信息,服务器基于第一时间戳确定未读消息,确保了未读消息的唯一性和准确性,实现了不同终端未读消息的信息的无缝隙同步,提高了用户体验。

本申请实施例在当前终端首次登录即时通讯账号时采用服务器发送的第一时间戳更新每一个会话的第二时间戳,或者,在判断会话中当前接收到的消息为未读消息时采用该未读消息的时间信息更新该会话对应的第二时间戳,或者,在接收到多终端同时登录同一账号时服务器发送的第一时间戳更新对应的第二时间戳,可以保持每一个会话的第二时间戳为当前终端侧或其它终端侧针对所述账号提交的每一个会话中接收到最新已读消息的时间信息,当前终端基于第二时间戳进行未读消息和已读消息的判断,进而进行对应的显示,实用性强,灵活性高,实现了不同终端未读消息的信息的无缝隙同步,提高了用户体验。

附图说明

图1是本申请的一种即时通讯未读消息的同步方法实施例1的步骤流程图;

图2是本申请的一种即时通讯的系统架构图;

图3是本申请的一种即时通讯未读消息的同步方法实施例2的步骤流程图;

图4是本申请的一种未读消息的信息的显示示例图;

图5是本申请的一种即时通讯未读消息的同步方法实施例3的步骤流程图;

图6是本申请的一种会话对应的窗口检测覆盖区域的示例图;

图7是本申请的一种即时通讯未读消息的同步方法实施例4的步骤流程图;

图8是本申请的一种即时通讯未读消息的同步方法实施例5的步骤流程图;

图9是本申请的一种即时通讯未读消息的同步方法实施例6的步骤流程图;

图10是本申请的一种即时通讯未读消息的同步方法实施例7的步骤流程图;

图11是本申请的一种即时通讯未读消息的同步方法系统实施例1的结构框图;

图12是本申请的一种即时通讯未读消息的同步方法系统实施例2的结构框图。

具体实施方式

为使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请实施例作进一步详细的说明。

参照图1,示出了本申请的一种即时通讯未读消息的同步方法实施例1的步骤流程图,具体可以包括如下步骤:

步骤101,在当前终端侧登录即时通讯账号时,从服务器侧获取所述账号的会话中未读消息的信息;

步骤102,在当前终端侧显示所述未读消息的信息;

其中,所述未读消息为会话中时间信息大于所述第一时间戳的消息,所述第一时间戳为所述账号提交的会话的前一次读取的消息的时间信息,所述账号的会话对应的第一时间戳存储于服务器侧;

步骤103,在当前终端侧基于所述账号在会话中进行消息交互时,判断当前正在进行的会话对应的窗口是否获得焦点;

步骤104,若是,则判定所述窗口中当前显示的消息已读。

如图2所示,即时通讯可以采用cs(client/server,客户端/服务器)结构,用户首先从im服务器上获取好友列表,以建立用户之间的点对点联系,然后用户(client1)和其好友(client2)之间采用点对点方式发送信息,具体可以是文字、图片、视频或其他文件。当用户之间无法直接进行点对点联系时,则用im服务器中转信息的方式完成。

其中,客户端(client)面对的可以是进行即时通讯的用户。具体地,客户端(client)可以分为发送端(messagesender),即端对端传输消息或发送文件时的执行发送操作的客户端;以及,与发送端相对应的接收端(messagereceiver),即端对端传输消息或发送文件时执行接收操作的客户端。

当然,即时通讯也可以采用p2p(peertopeer,对等网络)结构,即在网络中的每个节点的地位是对等的,既是客户端又是服务器,既为其他结点提供服务,同时也享受其他结点提供的服务。即时通讯还可以采用其他结构,本申请实施例对此不加以限制。

需要说明的是,客户端(client)可以是计算机客户端、web(网页)客户端、移动设备客户端等等。其中,移动设备按照功能可以包括平板电脑、个人数字助理、手机等各种移动设备,按照系统可以包括ios(iphoneoperationsystem)、android(安卓)、wp(windowsphone)移动设备,本申请实施例对此不作限制。

也即,本申请实施例可以应用于一运行在计算机或者移动设备上的应用程序,也即,在实际应用中,可以开发一款应用程序,使其在运行时能够执行本申请实施例中的各步骤操作。当然,该应用程序可以是一个独立的应用程序,也可以是另一应用程序中的一个功能模块,例如,在某即时通讯工具中增加本申请实施例中的获取未读消息的信息、显示未读消息的功能,等等。

本申请实施例中,服务器对于即时通讯账号的每一会话都可以对应存储有第一时间戳。当前即时通讯账号与另一即时通讯账号(例如当前即时通讯账号的联系人账号、好友账号或群组账号)的通信窗口对应一个会话。当前即时通讯账号与不同的即时通讯账号的通信窗口分别对应不同的会话。

已读即为被用户阅读过,相对而言,除已读消息外的消息即为未读消息。本申请实施例中,可以在检测到通讯工具中该会话对应的窗口被用户激活而获得焦点时,判定窗口中当前显示的消息已读。

当新消息加载到该会话的窗口时,该新消息则可以标记上已读标识。该会话的第一时间戳则为对该会话最近一次读取的新消息标记已读标识的时间。将即时通讯账号在该会话中时间信息大于第一时间戳的消息确定为未读消息。当前终端登录即时通讯账号时与服务器同步未读消息的信息,而基于第一时间戳的未读消息同步机制,用户在当前终端查看了未读消息之后,与服务器同步已读消息的时间信息,保持服务器存储有最新已读消息的时间信息,当用户在其他终端登录时,在先的未读消息已标记为已读信息,则在其他终端进行未读消息的处理,避免了未读消息在不同终端上重复发送的问题,也避免了未读消息的信息的统计不同步的问题,减少了服务器和终端的系统资源占用,实现了不同终端未读消息的信息的无缝隙同步,提高了用户体验。

参照图3,示出了本申请的一种即时通讯未读消息的同步方法实施例2的步骤流程图,具体可以包括如下步骤:

步骤301,在当前终端侧登录即时通讯账号时,从服务器侧获取所述账号的会话中未读消息的信息;

需要说明的是,即时通讯账号可以在一个或多个客户端上登录,在当前终端(客户端)登录时,也可以在其他终端登录,本申请实施例对此不加以限制。即所述其它终端可以为除当前终端以外,登录了同一即时通讯账号,或登录过同一即时通讯账号的终端。

在具体实现中,当前终端可以是主动从服务器获取未读消息的信息,也可以是被动从服务器获取未读消息的信息。

具体地,所述步骤301具体可以包括如下子步骤:

子步骤s11,在当前终端侧登录即时通讯账号时,发送未读消息信息的获取请求至服务器侧,所述服务器侧用于提取所述账号对应的会话中未读消息的信息;

子步骤s12,接收所述服务器侧发送的所述账号对应的会话中未读消息的信息;

当前终端在即时通讯账号登录后,可以基于该账号的标识(例如账号id)向服务器请求该账号的会话中未读消息的信息。

或者,

子步骤s13,在当前终端侧登录即时通讯账号时,接收服务器侧获取所述账号的会话中未读消息的信息;

服务器在检测到即时通讯账号在当前终端登录后,可以将该账号的会话中未读消息的信息发送至当前终端。

作为本申请实施例的一种优选示例,所述未读消息的信息可以包括会话的第一时间戳、会话的未读消息的数量和/或会话的最后一条消息。

其中,每一会话的第一时间戳可以为所述账号提交的每一个该会话前一次(即最近一次)读取的消息的时间信息;

每一会话的未读消息可以为每一个该会话中时间信息大于所述第一时间戳的消息;

每一会话的最后一条消息可以是基于当前登录的账号发送的消息,也可以是基于当前登录的账号接收的消息;可以包括最后一条消息的内容和/或最后一条消息的时间信息。

服务器将最近一个或多个会话的未读消息的信息发送至终端,减少了信息的发送量,减少了服务器的系统资源占用,当前终端需要处理的数据减少,进一步可以减少终端的系统资源占用。

步骤302,在当前终端侧显示所述未读消息的信息;

其中,所述未读消息为会话中时间信息大于所述第一时间戳的消息,所述第一时间戳为所述账号提交的会话的前一次读取的消息的时间信息,所述账号的会话对应的第一时间戳存储于服务器侧。

在实际应用中,可以以任意文字、图样等形式显示未读消息的信息,本申请实施例对此不加以限制。

以wp系统的移送设备为例,如图4所示,对于未读消息的数量,本示例可以将未读消息的数量通过即时通讯工具提高的api(applicationprogramminginterface,应用程序编程接口)在即时通讯工具的图标上穿透以数字形式显示,例如当前即时通讯账号与昵称为“沐言”的账号的会话中,共有6条未读消息;进一步地,为提高用户体验,当未读消息的数量达到100或100以上,可以采用“99+”进行标识,例如当前即时通讯账号与昵称为“李厚龙”的账号的会话超过了99条未读消息;当然,在会话中没有未读消息,则可以在即时通讯工具的图标显示“0”进行标识,或者不进行指定的显示,例如当前即时通讯账号与昵称为“黄小宝”等四个账号的会话中个,没有未读消息。对于最后一条消息,本示例可以将其显示在即时通讯工具的图标旁,以方便用户进行会话的识别。

步骤303,在当前终端侧基于所述账号在会话中进行消息交互时,判断当前正在进行的会话对应的窗口是否获得焦点;若是,则判定所述窗口中当前显示的消息已读;

已读即为被用户阅读过,相对而言,除已读消息外的消息即为未读消息。本申请实施例中,可以在检测到通讯工具中该会话对应的窗口被用户激活而获得焦点时,判定窗口中当前显示的消息已读。

步骤304,采用所述未读消息的信息中的第一时间戳更新当前终端侧中会话的第二时间戳;

在实际应用中,当前终端中可以存储有每一个会话对应的第二时间戳,当在登录账号后接收到服务器发送的该账号的每一个会话的第二时间戳后,即采用第一时间戳更新对应的第二时间戳,使得当前终端保持每一个会话的最新已读消息的时间信息。

步骤305,当进入一个或多个会话对应的窗口时,从服务器侧下载所述一个或多个会话对应的漫游消息;所述漫游消息包括所述账号发送的消息和接收的消息;

消息漫游是指当用户在多个终端同时或不同时使用同一即时通讯账号时,在其中一个终端侧可以查看其他终端侧的历史消息记录。

应用于本申请实施例,用户每次在终端侧开启即时通讯客户端登录某一即时通讯账号时,若检测到用户初次打开该账号中的某一好友的聊天窗口时,即时通讯客户端即从服务器中同步预设数量的第一历史消息记录,其中,所述预设数量的第一历史消息记录为服务器中存储的针对该聊天窗口的最新的历史消息记录。需要说明的是,所述预设数量为聊天窗口中能展示的一页历史消息记录的数量,其可以根据聊天窗口大小的不同而不同,并可以由用户或开发人员自行设置,例如,若聊天窗口中一页历史消息记录的数量为20时最符合用户的阅读体验,则将预设数量设置为20,当然,上述预设数量的设置方法仅仅是本申请实施例的一种示例,本申请实施例对所述预设数量的具体数量以及设置方法无需加以限制。

在具体实现中,即时通讯客户端登录某一即时通讯账号后,判断某一好友关系的聊天窗口是否是初次打开,可以采用如下方法:设置一个数据容器来保存某一即时通讯账号中打开过聊天窗口的好友id,当即时通讯客户端成功登录某一即时通讯账号之后,即清空该数据容器,每次打开某一好友关系的聊天窗口之后,获取该聊天窗口对应的好友id,并在所述数据容器中查找该好友id,若查找成功,则说明该好友id的聊天窗口不是初次打开;否则,则说明该好友id的聊天窗口是初次打开,并把该好友id存入数据容器中。可以看出,每一次在同一终端侧登录同一即时通讯账号之后由于数据容器都会被清空,因此每个好友关系的聊天窗口在每次即时通讯账号重新登录后都会有一个初次打开的机会,当某聊天窗口初次打开时会从服务器中获取该好友的最新的历史消息记录,例如,用户某一天上午10点在终端侧登录了某一即时通讯账号,打开了好友a的聊天窗口,此时即时通讯客户端从服务器中同步好友a的最新的20条历史消息记录,随后用户关闭好友a的聊天窗口并退出该即时通讯账号;在中午12点时,用户又在同一终端侧登录了同一即时通讯账号,打开了好友a的聊天窗口,此时即时通讯客户端判断好友a窗口是初次打开的,则再从服务器中同步好友a的最新的20条历史消息记录;用户关闭好友a的聊天窗口但不退出该即时通讯账号,在中午1点时,用户再次打开好友a的聊天窗口,此时即时通讯客户端判断该聊天窗口不是初次打开的,因此不会从服务器同步最新消息。

步骤306,将所述发送的消息确定为已读消息,并显示所述已读消息;

已读消息即为已经被用户阅读过的消息,若会话中的消息是用户发出的消息,则可以认为都是已读消息。之后可以通过对字体进行灰度处理、或者提示“以上是历史消息”等方式进行对应的显示。

和/或,

步骤307,将时间信息大于所述第二时间戳的接收的消息确定为未读消息,并显示所述未读消息;

未读消息即为未被用户阅读过的消息,时间信息大于第二时间戳(即当前终端侧或其它终端侧针对所述账号提交的每一个会话中接收到最新已读消息的时间信息)的接收的消息即为未读信息,可以通过对字体进行高亮处理、或者提示“以上是未读消息”等方式进行对应的提示。

需要说明的是,时间信息可以换算成秒数进行大小的比较,例如,某条接收的消息的时间信息为2013年11月20日17:35,第二时间戳为2013年11月19日23:42,此时该时间信息比第二时间戳大。

和/或,

步骤308,将时间信息小于或等于所述第二时间戳的接收的消息确定为已读消息,并显示所述已读消息。

时间信息小于或等于第二时间戳(即当前终端侧或其它终端侧针对所述账号提交的每一个会话中接收到最新已读消息的时间信息)的接收的消息即为已读信息,可以通过对字体进行高亮处理、或者提示“以上是未读消息”等方式进行对应的提示。

需要说明的是,时间信息可以换算成秒数进行大小的比较,例如,某条接收的消息的时间信息为2013年11月18日17:35,第二时间戳为2013年11月19日23:42,此时该时间信息比第二时间戳小。

参照图5,示出了本申请的一种即时通讯未读消息的同步方法实施例3的步骤流程图,具体可以包括如下步骤:

步骤501,在当前终端侧登录即时通讯账号时,从服务器侧获取所述账号的会话中未读消息的信息;

步骤502,在当前终端侧显示所述未读消息的信息;

其中,所述未读消息为会话中时间信息大于所述第一时间戳的消息,所述第一时间戳为所述账号提交的会话的前一次读取的消息的时间信息,所述账号的会话对应的第一时间戳存储于服务器侧;

步骤503,在当前终端侧基于所述账号在会话中进行消息交互时,判断当前正在进行的会话对应的窗口是否获得焦点;

步骤504,若是,则判定所述窗口中当前显示的消息已读,并执行步骤505;

已读即为被用户阅读过,相对而言,除已读消息外的消息即为未读消息。在实际应用中,对于每一个会话接收的消息,可以分别采用当前最新的已读消息的时间信息作为已读消息和未读消息的分界线。时间信息大于当前最新的已读消息的时间信息的消息即为未读消息,时间信息小于或等于当前最新的已读消息的时间信息的消息即为已读消息。

在本申请的一种优选实施例中,所述步骤503具体可以包括如下子步骤:判断所述当前正在进行的会话对应的窗口是否在当前终端的最上层;

若是,则判定所述当前正在进行的会话对应的窗口获得焦点。

本申请实施例中,可以在检测到通讯工具该会话对应的窗口(例如聊天窗口)被用户激活而获得焦点时,判定窗口中当前显示的消息已读。具体地,该焦点可以为该会话对应的窗口在当前终端的最上层,没有被其他窗口覆盖。

在一些场景中,会话对应的窗口获得焦点,并不能判定该会话最新接收到的消息已读。例如,当会话对应的窗口当前正在查看历史消息时,此时如果接收到新的消息,并不会在的窗口中显示,因此,此时即使会话对应的窗口获得焦点,该会话最新接收到的消息还是未读状态。

在本申请的一种优选实施例中,所述方法还可以包括如下步骤:

判断当前正在进行的会话对应的窗口是否超过预设区域被覆盖;

若否,则判定所述窗口中当前显示的消息已读。

在多窗口运行的终端,例如计算机,用户往往习惯于观看会话的聊天消息(例如群组聊天)而进行其他操作(例如看电影),该会话对应的窗口不是在最上层,但是会话中的消息依然被用户阅读了。此时可以根据当前会话对应的窗口被其他窗口覆盖的面积大小判断当前会话中接收到的消息是否被用户阅读。

以二分之一会话对应的窗口的面积作为预设区域的优选示例,如图6所示,上面的窗口为会话中消息交互的窗口,下面的窗口为输入消息的窗口,在会话中消息交互的窗口的四个角设置四个点a、b、c、d,以及这四个点的中点o,当检测到a、b、c、d和o中任意三个点被覆盖,则可以认为会话对应的窗口超过预设区域被覆盖。

本申请实施例通过当前正在进行的会话接收到的消息是否已读的判断,确保识别出最新已读消息。

步骤505,将所述已读消息的时间信息发送至服务器侧;所述服务器用于采用所述时间信息更新所述会话对应的第一时间戳,将所述会话中时间信息大于所述第一时间戳的消息确定为未读消息。

需要说明的是,会话中的消息,对于当前终端而言,其时间信息可以包括在其他终端的发送时间和在当前终端的接收时间,而会话中的消息的时间信息可以以服务器的时间信息为基准,若不考虑发送和接收的延时,则可以认为该消息的发送时间和接收时间一样,若考虑发送和接收的延时,由于消息的发送时间和接收时间存在一定的对应关系,则可以在本申请实施例中统一采用发送时间或者接收时间作为时间信息。

当前终端发送的已读消息的时间信息中可以携带该会话的标识(例如会话的id),当服务器接收到当前终端发送的所述会话的最新已读消息的时间信息,则可以采用该时间信息对对该会话对应的第一时间戳进行更新,将会话中时间信息大于第一时间戳的消息确定为未读消息,进而可以统计该会话的未读消息的信息。

本申请实施例在判定当前正在进行的会话中接收到已读消息时,将其时间信息发送至服务器更新第一时间戳,应用本申请实施例,其他终端亦会如此更新第一时间戳,使得服务器的第一时间戳为当前终端侧或其它终端侧针对所述账号提交的每一个会话中接收到最新已读消息的时间信息,服务器基于第一时间戳确定未读消息,确保了未读消息的唯一性和准确性,实现了不同终端未读消息的信息的无缝隙同步,提高了用户体验。

步骤506,采用所述已读消息的时间信息更新当前终端侧存储的所述会话对应的第二时间戳;

另一方面,在步骤505之前或者在步骤505之后,当前终端可以采用已读消息的时间信息更新该会话对应的第二时间戳。

步骤507,当进入一个或多个会话对应的窗口时,从服务器侧下载所述一个或多个会话对应的漫游消息;所述漫游消息包括所述账号发送的消息和接收的消息;

在本申请实施例中,用户在当前终端和其他终端同时登陆同一即时通讯账号时,服务器可以对当前终端和其他终端的会话中的消息进行同步。当前最新已读消息的时间信息若为步骤506更新的第二时间戳,例如用户在当前终端和其他终端都未阅读第二时间戳更新后接收到的消息,又例如,会话中的其他用户都未对第二时间戳更新后当前用户发送的消息进行回应,等等,则可以采用该第二时间戳进行已读消息和未读消息的判断及对应的显示。

步骤508,将所述发送的消息确定为已读消息,并显示所述已读消息;

和/或,

步骤509,将时间信息大于所述第二时间戳的接收的消息确定为未读消息,并显示所述未读消息;

和/或,

步骤510,将时间信息小于或等于所述第二时间戳的接收的消息确定为已读消息,并显示所述已读消息。

参照图7,示出了本申请的一种即时通讯未读消息的同步方法实施例4的步骤流程图,具体可以包括如下步骤:

步骤701,在当前终端侧登录即时通讯账号时,从服务器侧获取所述账号的会话中未读消息的信息;

步骤702,在当前终端侧显示所述未读消息的信息;

其中,所述未读消息为会话中时间信息大于所述第一时间戳的消息,所述第一时间戳为所述账号提交的会话的前一次读取的消息的时间信息,所述账号的会话对应的第一时间戳存储于服务器侧;

步骤703,接收服务器侧发送的所述账号的会话对应的第一时间戳;所述第一时间戳为其他终端侧发送的所述会话接收到最新已读消息的时间信息;

本申请实施例中,用户在当前终端和其他终端同时登陆同一即时通讯账号时,服务器可以对当前终端和其他终端的会话中的消息进行同步。若此时其他终端中的某一终端识别出会话中最新的已读消息的时间信息,则将该已读消息的时间信息发送至服务器,服务器用于采用该时间信息更新该会话的第二时间戳,并将该第二时间戳发送至当前登录了同一即时通讯账号的其余所有终端,其中包括当前终端。

步骤704,采用所述会话对应的第一时间戳更新当前终端侧存储的所述会话对应的第二时间戳;

当前终端在接收到第一时间戳后可以采用该第一时间戳更新该会话对应的第二时间戳。

步骤705,当进入一个或多个会话对应的窗口时,从服务器侧下载所述一个或多个会话对应的漫游消息;所述漫游消息包括所述账号发送的消息和接收的消息;

当前最新已读消息的时间信息若为步骤704更新的第二时间戳,例如用户在当前终端和其他终端都未阅读第二时间戳更新后接收到的消息,又例如,会话中的其他用户都未对第二时间戳更新后当前用户发送的消息进行回应,等等,则可以采用该第二时间戳进行已读消息和未读消息的判断及对应的显示。

步骤706,将所述发送的消息确定为已读消息,并显示所述已读消息;

和/或,

步骤707,将时间信息大于所述第二时间戳的接收的消息确定为未读消息,并显示所述未读消息;

和/或,

步骤708,将时间信息小于或等于所述第二时间戳的接收的消息确定为已读消息,并显示所述已读消息。

本申请实施例在当前终端首次登录即时通讯账号时采用服务器发送的第一时间戳更新每一个会话的第二时间戳,或者,在判断会话中当前接收到的消息为未读消息时采用该未读消息的时间信息更新该会话对应的第二时间戳,或者,在接收到多终端同时登录同一账号时服务器发送的第一时间戳更新对应的第二时间戳,可以保持每一个会话的第二时间戳为当前终端侧或其它终端侧针对所述账号提交的每一个会话中接收到最新已读消息的时间信息,当前终端基于第二时间戳进行未读消息和已读消息的判断,进而进行对应的显示,实用性强,灵活性高,实现了不同终端未读消息的信息的无缝隙同步,提高了用户体验。

参照图8,示出了本申请的一种即时通讯未读消息的同步方法实施例5的步骤流程图,具体可以包括如下步骤:

步骤801,在当前终端侧登录即时通讯账号时,提取所述账号对应的会话中未读消息的信息;

步骤802,将所述账号对应的会话中未读消息的信息发送至当前终端侧;

其中,所述未读消息为每一个会话中时间信息大于所述第一时间戳的消息,所述第一时间戳为所述账号提交的每一会话的前一次读取的消息的时间信息,所述账号的每一个会话对应的第一时间戳存储于服务器侧。

由于方法实施例5与方法实施例是相对应的,所以描述的比较简单,相关之处参见方法实施例1的部分说明即可,本申请实施例在此不加以详述。

参照图9,示出了本申请的一种即时通讯未读消息的同步方法实施例6的步骤流程图,具体可以包括如下步骤:

步骤901,在当前终端侧登录即时通讯账号时,提取所述账号对应的会话中未读消息的信息;

需要说明的是,即时通讯账号可以在一个或多个客户端上登录,在当前终端(客户端)登录时,也可以在其他终端登录,本申请实施例对此不加以限制。即所述其它终端可以为除当前终端以外,登录了同一即时通讯账号,或登录过同一即时通讯账号的终端。

在具体实现中,当前终端可以是主动从服务器获取未读消息的信息,也可以是被动从服务器获取未读消息的信息。

具体地,所述步骤901具体可以包括如下子步骤:

子步骤s31,在当前终端侧登录即时通讯账号并接收到未读消息信息的获取请求时,提取所述账号对应的会话中未读消息的信息;

或者,

子步骤s32,在检测到当前终端侧登录即时通讯账号时,提取所述账号对应的会话中未读消息的信息;

作为本申请实施例的一种优选示例,所述未读消息的信息可以包括会话的第一时间戳、会话的未读消息的数量和/或会话的最后一条消息。

步骤902,将所述账号对应的会话中未读消息的信息发送至当前终端侧;

其中,所述未读消息为会话中时间信息大于所述第一时间戳的消息,所述第一时间戳为所述账号提交的会话的前一次读取的消息的时间信息,所述账号的会话对应的第一时间戳存储于服务器侧;

步骤903,接收当前终端侧发送的已读消息的时间信息;其中,所述已读消息的时间信息为在当前终端侧基于所属账号并在会话中进行消息交互时,判断的当前正在进行的会话中接收到的为已读的消息的时间信息;

步骤904,采用所述时间信息更新所述会话对应的第一时间戳;

步骤905,将所述会话中时间信息大于所述第一时间戳的消息确定为未读消息;

步骤906,采用所述第一时间戳统计所述会话的未读消息的信息。

在具体实现中,服务器可以在会话结束后继续后进行围堵消息的信息的统计,其中可以包括提取第一时间戳、统计未读消息的数量和/或提取最后一条消息。

由于方法实施例6与方法实施例是相对应的,所以描述的比较简单,相关之处参见方法实施例2的部分说明即可,本申请实施例在此不加以详述。

参照图10,示出了本申请的一种即时通讯未读消息的同步方法实施例7的步骤流程图,具体可以包括如下步骤:

步骤1001,在当前终端侧登录即时通讯账号时,提取所述账号对应的会话中未读消息的信息;

步骤1002,将所述账号对应的会话中未读消息的信息发送至当前终端侧;

其中,所述未读消息为会话中时间信息大于所述第一时间戳的消息,所述第一时间戳为所述账号提交的会话的前一次读取的消息的时间信息,所述账号的会话对应的第一时间戳存储于服务器侧;

步骤1003,在多个终端侧登录所述账号,并且当前终端侧在会话中进行消息交互时,接收当前终端侧发送的所述窗口中当前显示的已读消息的时间信息;

步骤1004,采用所述时间信息更新所述会话对应的第一时间戳;

步骤1005,将所述会话对应的第一时间戳发送至其他终端侧。

由于方法实施例7与方法实施例是相对应的,所以描述的比较简单,相关之处参见方法实施例4的部分说明即可,本申请实施例在此不加以详述。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请实施例所必须的。

参见图11,示出了本申请的一种即时通讯未读消息的同步方法系统实施例1的结构框图,具体可以包括如下模块:

未读消息信息获取模块1101,用于在当前终端侧登录即时通讯账号时,从服务器侧获取所述账号的会话中未读消息的信息;

未读消息信息显示模块1102,用于在当前终端侧显示所述未读消息的信息;

其中,所述未读消息为会话中时间信息大于所述第一时间戳的消息,所述第一时间戳为所述账号提交的每一会话的前一次读取的消息的时间信息,所述账号的每一个会话对应的第一时间戳存储于服务器侧;

焦点判断模块1103,用于在当前终端侧基于所述账号在会话中进行消息交互时,判断当前正在进行的会话对应的窗口是否获得焦点;若是,则调用已读判定子模块;

已读判定模块1104,用于判定所述窗口中当前显示的消息已读。

在本申请的一种优选实施例中,所述未读消息的信息可以包括会话的第一时间戳、会话的未读消息的数量和/或会话的最后一条消息。

在本申请的一种优选实施例中,所述其它终端可以为除当前终端以外,登录了同一即时通讯账号,或登录过同一即时通讯账号的终端。

在本申请的一种优选实施例中,所述系统还可以包括如下模块:

第一更新模块,用于采用所述未读消息的信息中的第一时间戳更新当前终端侧中会话的第二时间戳。

在本申请的一种优选实施例中,所述系统还可以包括如下模块:

时间信息发送模块,用于若窗口中当前显示的消息已读,则将所述已读消息的时间信息发送至服务器侧;所述服务器用于采用所述时间信息更新所述会话对应的第一时间戳,将所述会话中时间信息大于所述第一时间戳的消息确定为未读消息。

在本申请的一种优选实施例中,所述系统还可以包括如下模块:

覆盖判断子模块,用于判断当前正在进行的会话对应的窗口是否超过预设区域被覆盖;若否,则调用已读判定子模块。

在本申请的一种优选实施例中,所述系统还可以包括如下模块:

第二更新模块,用于采用所述已读消息的时间信息更新当前终端侧存储的所述会话对应的第二时间戳。

在本申请的一种优选实施例中,所述系统还可以包括如下模块:

第一时间戳接收模块,用于接收服务器侧发送的所述账号的会话对应的第一时间戳;所述第一时间戳为其他终端侧发送的所述会话接收到最新已读消息的时间信息。

在本申请的一种优选实施例中,所述系统还可以包括如下模块:

第三更新模块,用于采用所述会话对应的第一时间戳更新当前终端侧存储的所述会话对应的第二时间戳。

在本申请的一种优选实施例中,所述系统还可以包括如下模块:

漫游消息下载模块,用于在进入一个或多个会话对应的窗口时,从服务器侧下载所述一个或多个会话对应的漫游消息;所述漫游消息包括所述账号发送的消息和接收的消息;

第一已读消息处理子模块,用于将所述发送的消息确定为已读消息,并显示所述已读消息;

和/或,

未读消息处理子模块,用于将时间信息大于所述第二时间戳的接收的消息确定为未读消息,并显示所述未读消息;

和/或,

第二已读消息处理子模块,用于将时间信息小于或等于所述第二时间戳的接收的消息确定为已读消息,并显示所述已读消息。

优选地,所述焦点判断模块1103还可以包括如下子模块:

窗口位置判断子模块,用于判断所述当前正在进行的会话对应的窗口是否在当前终端的最上层;

获得焦点判定子模块,用于若是,则判定所述当前正在进行的会话对应的窗口获得焦点。

参见图12,示出了本申请的一种即时通讯未读消息的同步方法系统实施例2的结构框图,具体可以包括如下模块:

未读消息信息提取模块1201,用于在当前终端侧登录即时通讯账号时,提取所述账号对应的会话中未读消息的信息;

未读消息信息发送模块1202,用于将所述账号对应的会话中未读消息的信息发送至当前终端侧;

其中,所述未读消息为会话中时间信息大于所述第一时间戳的消息,所述第一时间戳为所述账号提交的会话的前一次读取的消息的时间信息,所述账号的会话对应的第一时间戳存储于服务器侧。

在本申请的一种优选实施例中,所述未读消息的信息可以包括会话的第一时间戳、会话的未读消息的数量和/或会话的最后一条消息。

在本申请的一种优选实施例中,所述其它终端可以为除当前终端以外,登录了同一即时通讯账号,或登录过同一即时通讯账号的终端。

在本申请的一种优选实施例中,所述系统还可以包括如下模块:

第一时间信息接收模块,用于接收当前终端侧发送的已读消息的时间信息;其中,所述已读消息的时间信息为在当前终端侧基于所属账号并在会话中进行消息交互时,判断的当前正在进行的会话中接收到的为已读的消息的时间信息;

第四更新模块,用于采用所述时间信息更新所述会话对应的第一时间戳;

未读消息确定模块,用于将所述会话中时间信息大于所述第一时间戳的消息确定为未读消息。

在本申请的一种优选实施例中,所述系统还可以包括如下模块:

未读消息信息统计模块,用于采用所述第一时间戳统计所述会话的未读消息的信息。

在本申请的一种优选实施例中,所述系统还可以包括如下模块:

第二时间信息接收模块,用于在多个终端侧登录所述账号,并且当前终端侧在会话中进行消息交互时,接收当前终端侧发送的所述窗口中当前显示的已读消息的时间信息;

第五更新模块,用于采用所述时间信息更新所述会话对应的第一时间戳;

第一时间戳发送模块,用于将所述会话对应的第一时间戳发送至其他终端侧。

对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

在一个典型的配置中,所述计算机设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitorymedia),如调制的数据信号和载波。

本申请实施例是参照根据本申请实施例的方法、移动设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理移动设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理移动设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理移动设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理移动设备上,使得在计算机或其他可编程移动设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程移动设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者移动设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者移动设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者移动设备中还存在另外的相同要素。

以上对本申请实施例所提供的一种即时通讯未读消息的同步方法和一种即时通讯未读消息的同步系统,进行了详细介绍,本文中应用了具体个例对本申请实施例的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请实施例的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请实施例的限制。

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