CN101686141B - 一种实现已读状态同步的方法及设备 - Google Patents
一种实现已读状态同步的方法及设备 Download PDFInfo
- Publication number
- CN101686141B CN101686141B CN2008102232718A CN200810223271A CN101686141B CN 101686141 B CN101686141 B CN 101686141B CN 2008102232718 A CN2008102232718 A CN 2008102232718A CN 200810223271 A CN200810223271 A CN 200810223271A CN 101686141 B CN101686141 B CN 101686141B
- Authority
- CN
- China
- Prior art keywords
- message
- reading report
- reading
- equipment
- application server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种实现已读状态同步的方法及设备,方法具体包括:收到发送方发送的消息后,向接收方的各设备发送包含阅读报告请求的消息;收到所述接收方的设备发送的阅读报告,该设备是收到包含所述阅读报告请求的消息的至少两个设备中阅读该消息的设备,所述阅读报告是阅读该消息的设备根据该消息中的所述阅读报告请求发送的阅读报告;向所述接收方的设备中发送所述阅读报告的设备之外的其它设备发送用于同步的阅读报告,通知所述其它设备根据该阅读报告更新所述消息的状态。本发明实施例可以使用较少的信息流量来实现接收方至少两个设备之间的消息“已读”状态同步,可以避免由于使用数据同步协议进行同步过程中的大量消息交互,从而减轻整个系统的负担。
Description
技术领域
本发明涉及通信技术领域,尤其涉及通信系统中接收方多个设备之间消息已读状态同步的方法及设备。
背景技术
在通信系统的消息交互中,消息的发送方可以通过在发送的消息中增加请求IMDN(即时消息指示通知,Instant Message Disposition Notification),来请求消息接收方收到消息后回复消息发送方IMDN,以通知消息发送方消息被处理的情况。
IMDN是一种消息处理通知,包括三个类型的处理通知:delivery、processing、read,其中read通知类型用于指示消息接收方是否已经将消息交付给用户并被用户阅读。read通知类型包括三种状态“read”(已读)、“forbidden”(禁止)、“error”(出错)。
当消息发送方需要向消息接收方请求IMDN时,就在发送的消息中包含Disposition-Notification头域,并在Disposition-Notification头域中指定想要的通知类型(例如read、forbidden、error中的一种或多种),从而通过在消息中包含值为“read”的Disposition-Notification头域来请求消息接收方回复阅读报告。
此外,消息发送方需要向消息接收方请求IMDN时,还要在发送的消息中包含Message-ID头域,该头域包含一个全球唯一的消息标识符。当消息发送方收到一个IMDN时,将Message-ID的值与IMDN中的<message-id>元素的值进行比较,以确定收到的IMDN是针对哪一条已发出的消息的。
例如,用户A在发给用户B的消息中包含头域值为“read”的Disposition-Notification头域来请求用户B回复阅读报告,该消息的Message-ID值为34jk324j;用户B收到该消息后向用户A回复IMDN,并将上述Message-ID的值作为该回复的IMDN中<message-id>元素的值,当用户A收到用户B回复的该IMDN时,将其中<message-id>元素的值与本地存储的已发消息的Message-ID值进行匹配,得知Message-ID值为34jk324j的已发消息已被用户B阅读,于是用户A将该消息的状态更新为“已读”。
上述描述的是一个用户有一个设备接收消息并回复IMDN的情形,当一个用户有至少两个设备能够接收消息,应用服务器就需要将发送给该用户的消息发送到该用户的至少两个设备上。
例如,用户A通过设备1向用户B发送消息,核心网将该消息路由到用户B所在域的应用服务器,该应用服务器检查该消息头后,得到用户B的业务地址,查询本地数据库后得知用户B有两个设备可以用于接收该消息,于是该应用服务器将该消息的目的地址进行改写,通过核心网将入消息分别发送给用户B的设备1和设备2。这种情况下,当用户A向用户B请求IMDN时,若用户B的一个设备阅读了用户A发送的消息,那么用户B的其它设备上该消息的状态也需要同步为“已读”状态。
目前,采用数据同步协议可以实现在一个用户的至少两个设备上消息状态的同步。数据同步协议进行同步的流程,包括连接的建立、进行同步和结束同步。
发明人在实现本发明的过程中,发现现有技术中至少存在如下问题:
应用服务器和接收方设备都必须支持数据同步协议,如果有一方不支持数据同步协议,就无法通过这种方法实现消息已读状态的同步;而且采用数据同步协议进行状态同步的过程中需要进行大量消息交互,增加系统负担,占用网络资源。
发明内容
本发明的实施例提供了一种实现已读状态同步的方法、设备及系统,能够使用较少的信息流量来实现接收方至少两个设备之间的消息“已读”状态同步。
一种实现已读状态同步的方法,包括:
收到发送方发送的消息后,向接收方的各设备发送包含阅读报告请求的消息;收到所述接收方的设备发送的阅读报告,该设备是收到包含所述阅读报告请求的消息的至少两个设备中阅读该消息的设备,所述阅读报告是阅读该消息的设备根据该消息中的所述阅读报告请求发送的阅读报告;向所述接收方的设备中发送所述阅读报告的设备之外的其它设备发送用于同步的阅读报告,通知所述其它设备根据该阅读报告更新所述消息的状态。
一种实现已读状态同步的应用服务器,包括:
第一接收单元,用于接收发送方发送的消息;
第一发送单元,用于向接收方的各设备发送包含阅读报告请求的消息;
第二接收单元,用于接收接收方的设备发送的阅读报告,所述设备是接收方的收到包含阅读报告请求的消息的至少两个设备中阅读该消息的设备;所述阅读报告是阅读该消息的设备根据该消息中的所述阅读报告请求发送的阅读报告;
第二发送单元,在所述第二接收单元接收了接收方的设备根据所述消息包含的所述阅读报告请求发送的阅读报告后,向所述接收方的设备中发送所述阅读报告的设备之外的其它设备发送用于同步的阅读报告,通知其它设备根据所述用于同步的阅读报告更新所述消息的状态。
一种消息处理方法,应用于包含多个接收设备的接收方系统中,包括:
所述多个接收设备接收应用服务器发送的包含阅读报告请求的消息;
所述多个接收设备中的至少一个接收设备阅读所述消息后向应用服务器发送阅读报告;
所述多个接收设备中的发送所述阅读报告的设备之外的其它设备接收所述应用服务器发送的所述消息的阅读报告,并根据所述阅读报告更新已接收的所述消息的状态。
一种实现已读状态同步的接收方设备,包括:
接收单元,用于接收应用服务器发送的包含阅读报告请求的消息;
阅读处理单元,用于阅读所述接收单元接收的所述消息;在阅读所述消息后向所述应用服务器发送阅读报告;
所述接收单元,还用于接收所述应用服务器发送的所述消息的阅读报告;
同步单元,用于根据应用服务器发送的所述消息的所述阅读报告更新所述消息的状态。
一种实现已读状态同步的系统,包括:应用服务器和接收方设备;所述接收方设备,包括至少一个接收方第一设备,以及至少一个接收方第二设备;
应用服务器,用于收到发送方发送的消息后,向所述接收方设备发送包含阅读报告请求的消息;
接收方第一设备,用于接收应用服务器发送的消息,并在阅读所述消息后向所述应用服务器发送阅读报告;
其中,所述应用服务器,接收所述接收方第一设备发送的阅读所述消息的阅读报告后,向所述接收方第二设备发送所述消息的阅读报告;
接收方第二设备,用于接收应用服务器发送的消息,以及接收所述应用服务器发送的所述消息的所述阅读报告,并根据应用服务器发送的所述阅读报告更新已接收的所述消息的状态。
由上述本发明的实施例提供的技术方案可以看出,当接收方的至少两个设备通过应用服务器收到同一条消息时,由阅读所述消息的设备发送所述消息的阅读报告给应用服务器,应用服务器将所述消息的阅读报告转发给该接收方收到所述消息的其它设备,从而实现接收方至少两个设备之间的消息“已读”状态的同步。因此,本发明实施例可以使用较少的信息流量来实现接收方至少两个设备之间的消息“已读”状态同步,可以避免由于使用数据同步协议进行同步过程中的大量消息交互,从而减轻了整个系统的负担。
附图说明
图1为本发明实施例提供的方法流程示意图;
图2为本发明实施例中应用服务器的处理逻辑示意图;
图3为本发明实施例提供的可以用于具有至少两个设备的接收方的方法流程示意图;
图4为本发明实施例提供的接收方设备的处理逻辑示意图;
图5为本发明具体实施例一的处理流程示意图;
图6为本发明具体实施例二的处理流程示意图;
图7为本发明具体实施例三的处理流程示意图;
图8为本发明实施例提供的应用服务器的结构示意图;
图9为本发明实施例提供的接收方设备的结构示意图,
图10为本发明实施例提供的系统结构示意图。
具体实施方式
在多设备环境下的消息通信中,当消息接收方有至少两个设备,发送方发给接收方的消息就会被转发到接收方的至少两个设备上。接收方的至少两个设备收到同一条消息后,若接收方在其中一台设备上阅读了该消息,则接收方其它设备上该消息的状态也需要同步为“已读”状态。
本发明实施例提供了一种实现状态同步的方法,可以用于应用服务器实现消息状态的同步,具体可以包括:收到发送方发送的消息后,向接收方的各设备发送包含阅读报告请求的消息;收到所述接收方的设备发送的阅读报告,该设备是收到包含所述阅读报告请求的消息的至少两个设备中阅读该消息的设备,所述阅读报告是阅读该消息的设备根据该消息中的所述阅读报告请求发送的阅读报告;向所述接收方的设备(包括接收方的设备中发送所述阅读报告的设备之外的其它设备,还可以包括发送所述阅读报告的设备)发送用于同步的阅读报告,通知所述接收方的设备根据该阅读报告更新所述消息的状态。接收方的接收了所述消息的设备收到所述消息的阅读报告后,将该阅读报告对应的消息的识别信息与本地已接收消息的识别信息匹配,当找到对应的消息,将所述消息的状态更新为已读,从而实现了接收方的至少两个设备的消息“已读”状态的同步。
为便于对本发明实施例的理解,下面将结合附图对本发明实施例的方法流程进行详细描述。
图1是本发明实施例的方法流程示意图,如图1所示,相应的具体流程可以包括:
11:应用服务器收到发送给接收方的消息,该接收方具有至少两个设备,确保所述消息中包含阅读报告请求后,将其发送给接收方的各设备;例如,应用服务器收到发送方发送给接收方的消息后,根据该消息的头域值判断收到的该消息是阅读报告后,可以检查该消息中是否包含消息发送方的阅读报告请求,若没有包含消息发送方的阅读报告请求,则在该消息中增加用于状态同步的阅读报告请求后将其发送给接收方,若包含阅读报告请求则直接将该消息发送给接收方;
12:接收方的各设备收到包含阅读报告请求的消息后,阅读该消息的设备发送阅读报告给应用服务器;所述阅读报告的头域中可以包含不同值用于标识应用服务器是否需要向发送方发送所述阅读报告;例如:若接收方设备收到的消息中包含该消息的发送方的阅读报告请求,则阅读该消息的设备回复设置了表示回复发送方的头域值的阅读报告给应用服务器;或者,若消息中包含消息的发送方的阅读报告请求,但接收方通过其中一个设备阅读所述消息后确定不回复阅读报告时,阅读该消息的设备构造设置了用于状态同步的头域值的阅读报告并发送给应用服务器;或者,若消息中没有包含消息的发送方的阅读报告请求,但包含应用服务器增加的用于状态同步的阅读报告请求,则阅读该消息的设备构造设置了用于状态同步的头域值的阅读报告并向应用服务器发送;
13:应用服务器收到接收方阅读了包含阅读报告请求的消息的设备发送的阅读报告后,将阅读报告发送给接收方接收了所述消息的其它设备,通知其它设备根据该阅读报告更新对应的消息的状态;应用服务器还可以根据该阅读报告的头域值判断该阅读报告类型,并根据判断结果确定除将阅读报告发送给接收方接收了所述消息的其它设备外,是否将该阅读报告发送给发送方;例如,具体的可以包括:
若该阅读报告中包含了用于表示回复发送方的头域值,则判断该阅读报告是所述接收方阅读消息的设备根据该消息中包含的所述发送方的阅读报告请求回复的阅读报告;则向所述发送方转发该阅读报告,并向所述接收方的接收了该消息的其它设备发送该消息的阅读报告;
若该阅读报告中包含了用于状态同步的头域值,则判断该阅读报告是所述接收方阅读消息的设备由于接收方确定不根据该消息中包含的发送方的阅读报告请求回复阅读报告,而构造的用于状态同步的阅读报告;或者该阅读报告是所述接收方阅读该消息的设备根据应用服务器增加的阅读报告请求,而构造的用于状态同步的阅读报告,则向所述接收方接收了该消息的其它设备发送该消息的阅读报告。
接收方的其它设备收到应用服务器转发的所述消息的阅读报告后,将阅读报告对应的消息的识别信息与本地已接收消息的识别信息匹配,当找到对应的所述消息,将所述消息的状态更新为已读,从而实现了接收方至少两个设备上消息“已读”状态的同步。
上述内容描述了应用服务器在进行同步时的方法流程,可以看出,本发明实施例可以使用较少的信息流量来实现接收方至少两个设备之间的消息“已读”状态的同步,可以避免由于使用数据同步协议进行同步过程中的大量消息交互,从而减轻系统的负担。
下面结合附图2对本发明实施例中应用服务器的处理逻辑进行详细描述。
图2是应用服务器的处理逻辑示意图,如图2所示,相应的具体处理逻辑可以包括:
201:应用服务器收到消息后,对该消息进行检查;
202:应用服务器根据该消息的头域值判断该消息是不是阅读报告;由于接收方发送的阅读报告也是消息,因此,应用服务器先判断该消息是否含有Content-Disposition头域;若含有Content-Disposition头域,则进行203;若不含有Content-Disposition头域,则进行207;
203:检查Content-Disposition头域值,并根据头域值判断阅读报告类型;阅读报告类型可以包括发送方请求的阅读报告和状态同步的阅读报告;例如在IMDN(即时消息指示通知,Instant Message Disposition Notification)机制中,若该消息含有头域值为″notification″的Content-Disposition头域,则认为该消息是消息接收方回复的IMDN,即阅读报告;Content-Disposition头域的″notification″头域值在本发明实施例中被扩展为″notification_sender″或者″notification_sync″;因此应用服务器根据Content-Disposition头域值判断消息类型时,如果该消息的头域值为″notification_sender″或者″notification_sync″,则该消息为阅读报告,否则不是阅读报告;其中,Content-Disposition头域值为″notification_sender″的IMDN代表消息接收方对消息发送方所请求的阅读报告的回复,Content-Disposition头域值为″notification_sync″的IMDN代表为了状态同步需要而发送的阅读报告;根据判断结果,若应用服务器收到的该消息的头域值为″notification_sender″,则进行204;若应用服务器收到的该消息的头域值为″notification_sync″,则进行206;若是其它头域值,则进行205;
204:若应用服务器收到的该消息的头域值包含″notification_sender″,则该消息是接收方回复发送方的阅读报告,于是,应用服务器将该阅读报告转发给消息发送方,并将阅读报告的Content-Disposition头域值改为″notification_sync″,并分别发送给接收方收到相应消息的其它设备,以通知其它设备的消息已读状态的同步;
205:若该消息的Content-Disposition头域值为其它值,则直接转发该消息;
206:若应用服务器收到的该消息的头域值包含″notification_sync″,则该消息是为了同步而发送的阅读报告,于是应用服务器分别向接收了相应消息的接收方的其它设备发送该消息的阅读报告,并可以不转发该阅读报告给消息发送方;
207:判断该消息中是否包含Disposition-Notification头域;若该消息中包含Disposition-Notification头域,则进行208;若该消息中不包含Disposition-Notification头域,则进行211:
208:检查Disposition-Notification头域值,判断该Disposition-Notification是否包含“read”;若包含“read”,则进行209;若不包含“read”,则进行210;
209:若该消息的Disposition-Notification头域值包含“read”,由于消息的发送方若要向消息的接收方请求IMDN就需要在消息中包含Disposition-Notification头域,同时在Disposition-Notification头域中指定想要的处理通知的类型,已定义的请求阅读报告的Disposition-Notification头域值为“read”,应用服务器收到该消息后向接收方转发该消息;
210:若该消息的Disposition-Notification头域值不包含“read”,则需要在该消息中增加用于同步的阅读报告请求,由于消息接收方需要能够识别收到的消息中请求的阅读报告是消息发送方请求的还是应用服务器为了实现接收方消息状态同步而请求的,而现有机制中无法实现这种区分,因此本发明实施例通过对Disposition-Notification头域值进行扩展,增加“self-report”头域值,来表示多设备环境下的应用服务器为了消息“已读”状态的同步而请求阅读报告,应用服务器在该消息的Disposition-Notification头域中增加头域值“self-report”后,将其发送给接收方的各设备;
211:若该消息不包含Disposition-Notification头域,则应用服务器在消息中增加Disposition-Notification头域,头域值为“self-report”,并且在该消息中增加Message-ID头域后,将该消息发送给接收方的至少两个设备。
上述描述内容介绍了应用服务器实现接收方的至少两个设备消息“已读”状态同步时的处理逻辑,可以看出,本发明实施例将现有″notification″头域值扩展为″notification_sender″以及″notification_sync″就可以区分:消息接收方对消息发送方所请求的阅读报告的回复,以及为了同步需要而发送的阅读报告;并且本发明实施例还通过对Disposition-Notification头域值进行扩展,即对该头域增加“self-report”头域值,来表示多设备环境下的应用服务器为了消息“已读”状态的同步而请求阅读报告,从而使消息接收方各设备能够识别收到的消息请求的阅读报告是消息发送方请求的,还是应用服务器为了实现接收方消息“已读”状态同步而请求的。
本发明实施例还提供一种消息处理方法,可以应用于包含多个接收设备的接收方系统中,具体包括:所述多个接收设备接收应用服务器发送的包含阅读报告请求的消息;所述多个接收设备中的至少一个接收设备阅读所述消息后向应用服务器发送阅读报告;所述多个接收设备中的其它设备接收所述应用服务器发送的所述消息的阅读报告,并根据所述阅读报告更新已接收的所述消息的状态。
具体的,若所述消息中包含所述消息的发送方的阅读报告请求,阅读所述消息后向应用服务器发送设置了用于表示回复发送方的头域值的阅读报告;或者,若所述消息中包含所述消息的发送方的阅读报告请求,但接收方阅读所述消息后确定不回复阅读报告时,构造设置了用于状态同步的头域值的阅读报告并向应用服务器发送;或者,若所述消息中包含应用服务器为了状态同步增加的阅读报告请求,则阅读所述消息后,构造设置了用于状态同步的头域值的阅读报告并向应用服务器发送。
下面结合附图3对本发明实施例提供的可以用于包含多个接收设备的接收方系统实现消息“已读”状态同步的方法流程将进行描述。
图3是本发明实施例的可以用于具有至少两个设备的接收方的方法流程示意图,如图3所示,相应的具体流程可以包括:
31:接收应用服务器发送的包含阅读报告请求的消息;具体的:接收方的至少两个设备收到应用服务器发送的同一条消息;该消息可以包含消息发送方的阅读报告请求或应用服务器增加的用于状态同步的阅读报告请求;
32:阅读所述消息后向应用服务器发送阅读报告;具体的,接收方的至少两个设备中的一个设备阅读所述消息后,向应用服务器发送阅读报告;例如:
若所述消息中包含所述消息的发送方的阅读报告请求,阅读所述消息后向应用服务器发送设置了用于表示回复发送方的头域值的阅读报告;
或者,若所述消息中包含所述消息的发送方的阅读报告请求,但接收方阅读所述消息后确定不回复阅读报告时,构造设置了用于状态同步的头域值的阅读报告并向应用服务器发送;
或者,若所述消息中包含应用服务器为了状态同步增加的阅读报告请求,则阅读所述消息后,构造设置了用于状态同步的头域值的阅读报告并向应用服务器发送;
33:接收方收到所述消息的其它设备,收到应用服务器发送的所述消息的阅读报告,根据所述阅读报告的头域值判断应用服务器发送的是阅读报告后,将该阅读报告对应的所述消息的状态更新为已读;具体的,接收方收到所述消息的其它设备接收应用服务器发送的所述消息的阅读报告,将阅读报告对应的消息的识别信息与本地已接收消息的识别信息匹配,找到对应的所述消息,将所述消息的状态更新为已读。
上述内容描述了接收方设备实现状态同步时的方法流程,可以看出,本发明实施例可以使用较少的信息流量来实现接收方至少两个设备之间的消息“已读”状态的同步,可以避免由于使用数据同步协议进行同步过程中的大量消息交互,从而减轻系统的负担。
下面结合附图4对本发明实施例接收方设备的处理逻辑进行详细描述。如图4所示,相应的具体处理逻辑可以包括:
401:接收方的至少两个设备收到应用服务器发送的消息;
402:接收方的设备检查所述消息中是否包含Content-Disposition头域,若包含,进行403;若不包含,进行406;
403:检查Content-Disposition头域值,若头域值包含″notification_sender″,则进行404;若头域值包含″notification_sync″,则进行405;
404:若收到的所述消息的头域值包含″notification_sender″,则这是针对已发出消息的阅读报告,接收方设备将所述消息的识别信息与本地已发送消息的识别信息(例如Message-ID值)匹配,当找到对应的所述消息,将所述消息的状态更新为已读,实现消息“已读”状态同步;
405:若收到的所述消息的头域值包含″notification_sync″,则所述消息是应用服务器为了实现至少两个设备之间消息“已读”状态同步而发送的阅读报告,接收方设备将所述消息的识别信息与本地已接收消息的识别信息(例如Message-ID值)匹配,当找到对应的所述消息,将所述消息的状态更新为已读,实现消息“已读”状态同步;
406:接收方设备检查所述消息中是否包含Disposition-Notification头域:若包含,则进行407;
407:若所述消息的Disposition-Notification头域值包含“read”,则进行408;若所述消息的Disposition-Notification头域值包含“self-report”,则进行411;
408:所述消息的Disposition-Notification头域值包含“read”说明该消息的阅读报告是消息发送方请求的:若接收方通过至少两个设备之中的一台设备阅读了所述消息,并愿意向发送方回复阅读报告,则进行409;若确定不向发送方回复阅读报告,则进行410;
409:若接收方通过设备阅读了所述消息,并确定向发送方回复阅读报告,则构造阅读报告,将该阅读报告的Content-Disposition头域值设为″notification_sender″,然后将其发送给消息发送方;
410:若接收方通过设备阅读了所述消息,但确定不向发送方回复阅读报告,则仍然构造阅读报告,并将该阅读报告的Content-Disposition头域值设为″notification_sync″,然后将其发送给消息发送方(实际上这个阅读报告不会到达消息发送方);
411:若所述消息的Disposition-Notification头域值包含“self-report”,则所述消息的阅读报告请求是应用服务器为了实现接收方至少两个设备之间消息“已读”状态的同步而发起的(即消息的发送方并没有请求阅读报告),当接收方通过设备阅读了所述消息后,根据应用服务器发起的该阅读报告请求构造阅读报告,并将Content-Disposition头域值设为″notification_sync″,然后将该阅读报告发送给应用服务器。
上述描述内容介绍了接收方的设备实现至少两个设备消息“已读”状态同步的处理逻辑,可以看出,本发明实施例中,接收方的设备收到消息后,先判断该消息是否是阅读报告,若是阅读报告则根据Content-Disposition头域值对阅读报告进行匹配,以实现同步;若该消息不是阅读报告则根据Disposition-Notification头域值以及用户的意愿构造阅读报告来实现同步。并且,本发明实施例将现有″notification″头域值扩展为″notification_sender″以及″notification_sync″就可以区分:消息接收方对消息发送方所请求的阅读报告的回复,以及为了同步需要而发送的阅读报告;并且本发明实施例还通过对Disposition-Notification头域值进行扩展,即对该头域增加“self-report”头域值,来表示多设备环境下的应用服务器为了消息“已读”状态的同步而请求阅读报告,从而使消息接收方各设备能够识别收到的消息中请求的阅读报告是消息发送方请求的还是应用服务器为了实现接收方消息“已读”状态同步而请求的。
本发明实施例中的发送方设备在收到应用服务器发送的头域值为″notification_sender″的阅读报告后,将该阅读报告中的Message-ID元素的值与已发消息的Message-ID值进行匹配,就能找到对应的已发消息,并将对应的已发消息更新为已读。
需要说明的是,实际的通信交互过程中,一个接收方设备同时也可以是发送方设备,因此,本发明实施例中的接收方设备也具有发送方设备的功能,即收到应用服务器发送的头域值为″notification_sender″的阅读报告后,将该阅读报告中的Message-ID元素的值与已发消息的Message-ID值进行匹配,就能找到对应的已发消息,并将对应的已发消息更新为已读。这样,本发明实施例中的接收方设备(同时也是发送方设备)在收到一个头域值为″notification_sender″的阅读报告后,即可判断得知该阅读报文是针对已发送消息的,然后只需在已发送消息中查找对应消息;或在收到一个头域值为″notification_sync″的阅读报告后,即可判断得知该阅读报文是针对已接收消息的,然后只需在已接收消息中查找对应消息,这样就免去了由于不知道该阅读报告是针对已发送消息还是已接收消息的而在已发送消息和已接收消息中进行的查找,从而减少了一半的工作量。
为便于对本发明实施例的理解,下面将结合附图对本发明实施例的具体实现方案进行详细的描述。
具体实施例一
该实施例中,在接收方设备向发送方回复阅读报告的情况下,实现接收方至少两个设备之间消息“已读”状态的同步。
若消息发送方发送的消息中包含了阅读报告请求,例如发送的该消息中包含了头域值为“read”的Disposition-Notification头域,当接收方在多个接收了该消息的设备中的一个设备上阅读了该消息后,该设备根据发送方的阅读报告请求构造阅读报告,并将Content-Disposition头域值设为″notification_sender″,然后向消息发送方发送该阅读报告。该阅读报告首先到达消息接收方(即阅读报告的发送方)的应用服务器,应用服务器检查该阅读报告的Content-Disposition头域,发现头域值包含″notification_sender″,就知道该阅读报告是消息接收方根据发送方的阅读报告请求回复的阅读报告,于是将该阅读报告转发给消息发送方,然后为了使消息接收方的接收了同一条消息的其它设备也将该消息的状态同步为“已读”,应用服务器将该阅读报告中的Content-Disposition头域值″notification_sender″改为″notification_sync″,并分别发送给接收方接收了同一条消息的其它设备。
消息发送方设备收到阅读报告后,检查Content-Disposition头域,发现头域值包含″notification_sync″,就将该将阅读报告中的<message-id>元素的值与已发送消息的Message-ID的值进行匹配,就可以找到对应的消息,然后将对应的消息的状态更新为已读。
消息接收方接收了同一条消息的其它设备收到应用服务器修改了头域值的阅读报告后,检查Content-Disposition头域,发现头域值包含″notification_sync″,就知道这是针对已接收消息的状态同步的阅读报告,于是将阅读报告中的<message-id>元素的值与已接收消息的Message-ID的值进行匹配,就能找到对应的消息,将对应的消息的状态更新为已读,实现消息状态的同步。
下面将结合图5,对本实施例的应用过程进行详细说明。图5中,用户A设备为消息发送方设备,用户B为消息接收方并且有2个接收设备,分别为设备1和设备2;图中的应用服务器是用户B的应用服务器。如图5所示,具体的处理可以包括:
(1)用户A向用户B发送消息,该消息中包含阅读报告请求,例如具体的,可以在消息中包含Disposition-Notification头域并且头域值包含“read”;该消息到达为用户B服务的应用服务器后,应用服务器检查该消息中的Disposition-Notification头域,发现Disposition-Notification头域值包含″read″,则不对该头域修改,同时应用服务器对本地数据库进行查询,发现用户B有两个设备可以接收该消息;
(2)应用服务器转发该包含发送方阅读报告请求的消息给用户B的设备1;
(3)应用服务器转发该包含发送方阅读报告请求的消息给用户B的设备2;
(4)用户B通过设备1阅读了应用服务器转发的上述消息,并且愿意向用户A回复消息阅读报告,设备1就根据发送方的阅读报告请求构造阅读报告,并在该阅读报告的Content-Disposition头域中包含值″notification_sender″,然后向用户A发送,该阅读报告首先到达用户B的应用服务器;
(5)应用服务器检查Content-Disposition头域,发现头域值包含″notification_sender″,于是向用户A转发该阅读报告;用户A收到阅读报告后,检查Content-Disposition头域,发现头域值包含″notification_sender″,就将该将阅读报告中的<message-id>元素的值与已发消息的Message-ID的值进行匹配,就可以找到对应的消息,并将对应的消息的状态更新为已读。
(6)应用服务器将阅读报告中的Content-Disposition头域值″notification_sender″改为″notification_sync″后,发送给用户B的设备2,设备2收到阅读报告后,检查Content-Disposition头域,发现头域值包含″notification_sync″,将阅读报告中的<message-id>元素的值与已接收消息的Message-ID的值进行匹配,就可以找到对应的消息,将对应的消息的状态更新为已读,实现消息“已读”状态的同步。
由上述描述可知,应用服务器收到接收方收到同一条消息的至少两个设备中的一个设备回复发送方的阅读报告后,将该阅读报告转发给消息发送方,同时通过将该阅读报告中的Content-Disposition头域值″notification_sender″改为″notification_sync″,并分别发送给接收方接收了同一条消息的其它设备,可以实现接收方至少两个收到同一条消息的设备的消息“已读”状态同步。从而使用较少的信息流量来实现接收方至少两个设备之间的消息“已读”状态同步,可以避免由于使用数据同步协议进行同步过程中的大量消息交互,减轻了整个系统的负担。
具体实施例二
该实施例中,在接收方确定不回复阅读报告的情况下,实现接收方至少两个设备之间消息“已读”状态的同步。
若消息发送方发送的消息中包含了阅读报告请求,例如发送的消息中包含了值为“read”的Disposition-Notification头域,接收方设备收到该消息,接收方通过至少两个收到该消息的设备中的一个设备阅读该消息后,却确定不发送该消息的阅读报告。为了实现接收方其它设备上消息状态的同步,接收方阅读所述消息的设备仍然构造阅读报告,并在该阅读报告的Content-Disposition头域中包含值″notification_sync″,然后发送给消息发送方(实际上这个阅读报告不会到达消息发送方)。
该阅读报告首先到达消息接收方(即阅读报告的发送方)的应用服务器,应用服务器检查其Content-Disposition头域,发现头域值包含″notification_sync″,就分别向接收方接收了消息的其它设备发送该该消息的阅读报告,但不转发该阅读报告给消息发送方。
消息接收方的其它设备收到阅读报告后,检查Content-Disposition头域,发现头域值包含″notification_sync″,于是将阅读报告中的<message-id>元素的值与已接收消息的Message-ID的值进行匹配,就可以找到对应的消息,将对应的消息的状态更新为已读,实现消息“已读”状态的同步。
下面将结合图6,对本实施例的应用过程进行详细说明。图6中,用户A设备为消息发送方设备,用户B为消息接收方并且有2个接收设备,分别为设备1和设备2;图中的应用服务器是用户B的应用服务器。如图6所示,具体的处理可以包括:
(1)用户A向用户B发送消息,发送的消息中包含了阅读报告请求,例如消息中包含Disposition-Notification头域并且头域值包含“read”;该消息到达为用户B服务的应用服务器后,应用服务器检查消息中的Disposition-Notification头域,发现Disposition-Notification头域值包含″read″,则不对该消息加以修改,同时应用服务器对本地数据库进行查询,发现用户B有两个设备可以接收该入消息;
(2)应用服务器转发该消息给用户B的设备1;
(3)应用服务器转发该消息给用户B的设备2;
(4)用户B通过设备1阅读了应用服务器转发的上述消息,发现Disposition-Notification头域值包含″read″,即用户A请求了消息阅读报告,但用户B确定不向用户A回复消息阅读报告,于是设备1构造阅读报告,并使该阅读报告的Content-Disposition头域值包含″notification_sync″,然后将该阅读报告发送给用户A(实际上该阅读报告不会到达用户A),该消息阅读报告首先到达用户B的应用服务器;
(5)应用服务器检查Content-Disposition头域,发现头域值包含″notification_sync″,于是应用服务器不向用户A转发该阅读报告,但发送阅读报告给用户B的设备2;设备2收到阅读报告后,检查Content-Disposition头域,发现头域值包含″notification_sync″,于是将阅读报告中的<message-id>元素的值与已接收消息的Message-ID的值进行匹配,就可以找到对应的消息,并将对应的消息的状态更新为已读,实现消息“已读”状态的同步。
由上述描述可知,在接收方确定不回复阅读报告的情况下,接收方设备可以在接收方阅读所述消息后,回复Content-Disposition头域值为″notification_sync″的阅读报告,应用服务器将该消息的阅读报告发送给接收方的其它设备,就可以实现使用较少的信息流量来实现接收方至少两个设备之间的消息“已读”状态同步,避免了由于使用数据同步协议进行同步过程中的大量消息交互,从而减轻了整个系统的负担。
具体实施例三
该实施例中,在发送方发送的消息中未包含阅读报告请求的情况下,实现接收方至少两个设备之间消息“已读”状态的同步。
若发送方在发送的消息中没有请求阅读报告,则为了实现接收方各设备上消息已读状态的同步,应用服务器就可以在转发消息给接收方各设备之前,在该消息中增加阅读报告请求,例如,可以给该消息增加Disposition-Notification头域值“self-report”,具体的,若该消息中已经有Disposition-Notification头域,则对该头域增加头域值“self-report”;若该消息中不含Disposition-Notification头域,则在消息中增加Disposition-Notification头域,并设头域值为“self-report”,同时在消息中增加Message-ID头域,然后再将消息发送到接收方的至少两个设备。
当接收方的至少两个设备收到应用服务器增加了阅读报告请求的消息时,根据Disposition-Notification头域值包含的“self-report”,就可以识别出对该消息的阅读报告请求是应用服务器为实现接收方多设备之间消息“已读”状态的同步而发起的,而发送方并没有请求阅读报告。当接收方在其中一台设备上阅读了该消息时,该接收方设备构造阅读报告,并在该阅读报告中增加Content-Disposition头域值″notification_sync″,然后将其发送给消息发送方(实际上这个阅读报告不会到达消息发送方)。
该阅读报告首先到达消息接收方(即阅读报告的发送方)的应用服务器,应用服务器检查其Content-Disposition头域,发现头域值包含″notification_sync″,就不将该阅读报告转发给消息发送方,而分别向接收方接收了对应的消息的其它设备发送该消息的阅读报告。
消息接收方的其它设备收到阅读报告后,检查Content-Disposition头域,发现头域值包含″notification_sync″,将阅读报告中的<message-id>元素的值与已接收消息的Message-ID的值进行匹配,就可以找到对应的消息,并将对应的消息的状态更新为已读,实现消息“已读”状态的同步。
下面将结合图7,对本实施例的应用过程进行详细说明。图7中,用户A设备为消息发送方设备,用户B为消息接收方并且有2个接收设备,分别为设备1和设备2;图中的应用服务器是用户B的应用服务器。如图7所示,具体的处理可以包括:
(1)用户A向用户B发送消息,消息中未包含阅读报告请求;该消息到达用户B的应用服务器后,应用服务器检查该消息中的Disposition-Notification头域,若Disposition-Notification头域值不包含″read″,则对该头域增加头域值“self-report”;若该消息中不含Disposition-Notification头域,则在该消息中增加Disposition-Notification头域,头域值为“self-report”,并在该消息中增加Message-ID头域,同时应用服务器对本地数据库进行查询,发现用户B有两个设备可以接收该消息;
(2)应用服务器转发该消息给用户B的设备1;
(3)应用服务器转发该消息给用户B的设备2;
(4)用户B通过设备1阅读了该消息,发现Disposition-Notification头域值包含″self-report″,即知道用户A没有请求消息阅读报告,但用户B需要向应用服务器提供消息“已读”状态同步的信息,于是构造阅读报告,并使该阅读报告中包含Content-Disposition头域值″notification_sync″,然后将其发送给用户A(实际上该阅读报告不会到达用户A),消息阅读报告首先到达用户B的应用服务器;
(5)应用服务器检查该阅读报告的Content-Disposition头域,发现头域值包含″notification_sync″,即知道不需向用户A转发该阅读报告,于是只转发给用户B的设备2;设备2收到该阅读报告后,检查Content-Disposition头域,发现头域值包含″notification_sync″,于是将阅读报告中的<message-id>元素的值与已接收消息的Message-ID的值进行匹配,就可以找到对应的消息,并将对应的消息的状态更新为已读,实现消息状态的同步。
由上述描述可知,在发送方发送的消息中未包含阅读报告请求的情况下,应用服务器可以在发送该消息给接收方各设备之前,在该消息中增加阅读报告请求,例如,可以给该消息增加Disposition-Notification头域值“self-report”;接收方设备在接收方阅读所述增加了阅读报告请求的消息后,回复Content-Disposition头域值为″notification_sync″的阅读报告,应用服务器再将该阅读报告转发给接收方的其它设备,就可以实现使用较少的信息流量来实现接收方至少两个设备之间的消息“已读”状态同步,避免了由于使用数据同步协议进行同步过程中的大量消息交互,从而减轻了整个系统的负担。
本发明实施例还提供了一种实现已读状态同步的应用服务器,其结构如图8所示,具体实现结构可以包括:
第一接收单元81,用于接收发送方发送的消息;包括阅读报告和发送给接收方的消息;
第一检测单元82,用于检测所述第一接收单元81接收的所述发送方发送的消息是阅读报告,还是其它消息;以及所述消息中是否包含发送方的阅读报告请求;
第一处理单元83,用于根据所述第一检测单元82的检测结果,在没有包含发送方的阅读报告请求的消息中增加用于状态同步的阅读报告请求;并将包含所述阅读报告请求的消息传递给第一发送单元84;例如,增加用于状态同步的阅读报告请求时,可以给消息增加Disposition-Notification头域值“self-report”,具体的,若该消息中已经有Disposition-Notification头域,则对该头域增加头域值“self-report”;若该消息中不含Disposition-Notification头域,则在消息中增加Disposition-Notification头域,并设头域值为“self-report”,并在该消息中增加Message-ID头域;对已包含发送方的阅读报告请求的消息不再增加用于状态同步的阅读报告请求;
第一发送单元84,用于根据第一处理单元的处理结果,向接收方的各设备发送包含阅读报告请求的消息;
第二接收单元85,用于接收接收方的设备发送的阅读报告;所述设备是接收方的收到包含阅读报告请求的消息的至少两个设备中阅读该消息的设备;所述阅读报告是阅读该消息的设备根据该消息中的所述阅读报告请求发送的阅读报告;
判断单元86,用于根据消息的头域值判断所述第二接收单元85接收到的消息是阅读报告;并根据所述阅读报告的头域值判断所述阅读报告的类型;并将判断结果传递给所述第二发送单元;所述阅读报告的类型包括回复发送方的阅读报告和用于状态同步的阅读报告;具体的,若该阅读报告中包含了用于表示回复发送方的头域值,例如Content-Disposition的头域值包含″notification_sender″,则判断该阅读报告是所述接收方阅读消息的设备根据该消息中包含的所述发送方的阅读报告请求回复的阅读报告;若该阅读报告中包含了用于状态同步的头域值,例如Content-Disposition的头域值包含″notification_sync″,则判断该阅读报告是所述接收方阅读消息的设备根据该消息中包含的所述发送方的阅读报告请求,或是所述接收方阅读消息的设备根据所述消息中增加的用于状态同步的阅读报告请求,而构造的用于状态同步的阅读报告;
第二发送单元87,在所述第二接收单元85接收了接收方的设备根据所述消息包含的所述阅读报告请求发送的阅读报告后,向所述接收方的设备中发送所述阅读报告的设备之外的其它设备发送用于同步的阅读报告,通知其他设备根据所述阅读报告更新所述消息的状态;例如,根据判断单元86判断阅读报告的类型是回复发送方的阅读报告时,将阅读报告中的Content-Disposition头域值″notification_sender″改为″notification_sync″,并分别发送给接收方接收了同一条消息的其它设备;
第三发送单元88,用于当所述判断单元86判断所述阅读报告的类型是回复发送方的阅读报告时,向所述发送方发送该阅读报告。
本发明实施例还提供一种实现状态同步的接收方设备,其结构如图9所示,具体实现结构可以包括:
接收单元91,用于接收应用服务器发送的包含阅读报告请求的消息;还用于接收所述应用服务器发送的所述消息的阅读报告;
阅读处理单元92,用于阅读所述接收单元接收的所述消息;在阅读所述消息后向所述应用服务器发送阅读报告;具体包括:
判断单元921,用于根据所述消息的头域值判断所述消息中包含的阅读报告请求是发送方的阅读报告请求,还是应用服务器为了状态同步增加的阅读报告请求;例如,判断在消息中是否包含Disposition-Notification头域,并且头域值为“read”,或者该消息中是否包含Disposition-Notification头域,并且头域值为“self-report”;还用于根据所述阅读报告的头域值判断所述接收单元接收的所述阅读报告是否是所述消息的阅读报告;即该阅读报告是针对已发送消息的还是针对已接收消息的;例如,根据消息的头域值判断所述消息的头域值是否包括头域值″notification_sync″;并将判断结果传递给同步单元93;
阅读单元922,用于阅读所述消息;并在所述判断单元判断所述消息中包含发送方的阅读报告请求时,根据该阅读报告请求,发送设置了用于表示回复发送方的头域值的阅读报告给所述应用服务器;例如,在该阅读报告的Content-Disposition头域中设置值″notification_sender″,然后发送给应用服务器;或者,判断所述消息中包含发送方的阅读报告请求,但接收方确定不回复阅读报告时,构造设置了用于状态同步的头域值的阅读报告并发送给所述应用服务器;例如,使该阅读报告的Content-Disposition头域值包含″notification_sync″,然后将其发送给应用服务器;或者,判断所述消息中包含所述增加的用于状态同步的阅读报告请求,则根据该阅读报告请求,构造设置了用于状态同步的头域值的阅读报告并发送给所述应用服务器;例如,使该阅读报告中的Content-Disposition头域值包含″notification_sync″,然后将其发送给应用服务器;
同步单元93,用于根据应用服务器发送的所述消息的所述阅读报告,更新所述消息的状态;具体的,可以根据判断单元921判断消息是应用服务器发送的所述消息的所述阅读报告的结果,更新所述消息的状态;所述同步单元93包括:
识别单元931,用于将所述阅读报告对应的消息的识别信息与本地已接收消息的识别信息匹配,找到对应的所述消息;
更新单元932,用于将对应的所述消息的状态更新为已读。
本发明实施例还提供一种实现状态同步的系统,其结构如图10所示,包括应用服务器和接收方设备;所述接收方设备,包括至少一个接收方第一设备,以及至少一个接收方第二设备;
应用服务器101,用于收到发送方发送的消息后,向所述接收方设备发送包含阅读报告请求的消息;接收接收方第一设备102发送的阅读所述消息的阅读报告后,向接收方第二设备103发送所述消息的阅读报告;该系统中的应用服务器包括的单元与上述应用服务器包括的单元相同,这里不再赘述;
接收方第一设备102,用于接收应用服务器101发送的消息,并在阅读所述消息后向所述应用服务器发送阅读报告;该系统中的接收方第一设备102包括的单元与上述接收方设备包括的单元相同,这里不再赘述;
接收方第二设备103,用于接收应用服务器发送的消息,以及接收所述应用服务器发送的所述消息的所述阅读报告,并根据应用服务器发送的所述阅读报告更新所述消息的状态;该系统中的接收方第二设备103包括的单元与上述接收方设备包括的单元相同,这里不再赘述。
本发明实施例中的实现状态同步的设备、单元可以设置于终端设备中,或者,也可以设置在网络侧设备中。
综上所述,本发明各实施例和现有技术中相比,本发明实施例通过对现有机制扩展,就可以实现使用较少的信息流量来实现接收方各设备之间的消息“已读”状态同步,避免了由于使用数据同步协议进行同步过程中的大量消息交互,从而减轻了整个系统的负担。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (12)
1.一种实现已读状态同步的方法,其特征在于,包括:
应用服务器收到发送方发送的消息后,向接收方至少两个设备的各设备发送包含阅读报告请求的消息;
所述应用服务器收到所述接收方的设备发送的阅读报告,该设备是收到包含所述阅读报告请求的消息的至少两个设备中阅读该消息的设备,所述阅读报告是阅读该消息的设备根据该消息中的所述阅读报告请求发送的阅读报告;
所述应用服务器向所述接收方的设备中发送所述阅读报告的设备之外的其它设备发送用于同步的阅读报告,通知所述其它设备根据该阅读报告更新所述消息的状态,该步骤包括:根据所述收到所述接收方的设备发送的阅读报告的头域值判断该阅读报告类型,并根据判断结果进行发送;具体包括:
若该阅读报告中包含了用于表示回复发送方的头域值,则判断该阅读报告是所述接收方阅读消息的设备根据该消息中包含的所述发送方的阅读报告请求回复的阅读报告;则向所述接收方的所述其它设备发送用于同步的阅读报告;
若该阅读报告中包含了用于状态同步的头域值,则判断该阅读报告是所述接收方阅读消息的设备根据该消息中包含的所述发送方的阅读报告请求,或是所述接收方阅读消息的设备根据所述消息中增加的用于状态同步的阅读报告请求,而构造的用于状态同步的阅读报告;则向所述接收方的所述其它设备发送用于同步的阅读报告。
2.根据权利要求1所述的方法,其特征在于,所述向接收方的各设备发送包含阅读报告请求的消息,包括:
若收到的发送方发送的消息中没有包含发送方的阅读报告请求,则在该消息中增加用于状态同步的阅读报告请求后,发送给接收方的各设备;若包含发送方的阅读报告请求,则将该消息直接发送给接收方的各设备。
3.根据权利要求2所述的方法,其特征在于,所述判断该阅读报告是所述接收方阅读消息的设备根据该消息中包含的所述发送方的阅读报告请求回复的阅读报告时,还向所述发送方发送该阅读报告。
4.根据权利要求1或2或3所述的方法,其特征在于,所述方法还包括:
所述其它设备收到所述用于同步的阅读报告后,将该阅读报告对应的消息的识别信息与本地已接收消息的识别信息匹配,找到对应的消息,将该对应的消息的状态更新为已读。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:收到消息后根据所述头域值判断收到的所述消息是阅读报告。
6.一种实现已读状态同步的应用服务器,其特征在于,包括:
第一接收单元,用于接收发送方发送的消息;
第一发送单元,用于向接收方至少两个设备的各设备发送包含阅读报告请求的消息;
第二接收单元,用于接收接收方的设备发送的阅读报告,所述设备是接收方的收到包含阅读报告请求的消息的至少两个设备中阅读该消息的设备;所述阅读报告是阅读该消息的设备根据该消息中的所述阅读报告请求发送的阅读报告;
第二发送单元,在所述第二接收单元接收了接收方的设备根据所述消息包含的所述阅读报告请求发送的阅读报告后,向所述接收方的设备中发送所述阅读报告的设备之外的其它设备发送用于同步的阅读报告,通知其它设备根据所述用于同步的阅读报告更新所述消息的状态;
判断单元,用于根据所述第二接收单元接收到的消息的头域值判断该消息是阅读报告;并根据所述阅读报告的头域值判断所述阅读报告的类型;并将判断结果传递给所述第二发送单元;所述阅读报告的类型包括回复发送方的阅读报告和用于状态同步的阅读报告;
第三发送单元,用于当所述判断单元判断所述阅读报告的类型是回复发送方的阅读报告时,向所述发送方发送该阅读报告。
7.根据权利要求6所述的应用服务器,其特征在于,所述应用服务器,还包括:
第一检测单元,用于检测所述第一接收单元接收的所述发送方发送的消息中,是否包含发送方的阅读报告请求;
第一处理单元,用于根据所述第一检测单元的检测结果,在没有包含发送方的阅读报告请求的消息中增加用于状态同步的阅读报告请求;并将包含所述阅读报告请求的消息传递给所述第一发送单元。
8.一种消息处理方法,应用于包含多个接收设备的接收方系统中,其特征在于,包括:
所述多个接收设备接收应用服务器发送的包含阅读报告请求的消息;
所述多个接收设备中的至少一个接收设备阅读所述消息后向应用服务器发送阅读报告;
所述多个接收设备中的发送所述阅读报告的设备之外的其它设备接收所述应用服务器发送的所述消息的阅读报告,并根据所述阅读报告更新已接收的所述消息的状态;
所述阅读所述消息后向应用服务器发送阅读报告,具体包括:
若所述消息中包含所述消息的发送方的阅读报告请求,阅读所述消息后向应用服务器发送设置了用于表示回复发送方的头域值的阅读报告;
或者,若所述消息中包含所述消息的发送方的阅读报告请求,但接收方阅读所述消息后确定不回复阅读报告时,构造设置了用于状态同步的头域值的阅读报告并向应用服务器发送;
或者,若所述消息中包含应用服务器为了状态同步增加的阅读报告请求,则阅读所述消息后,构造设置了用于状态同步的头域值的阅读报告并向应用服务器发送。
9.根据权利要求8所述的方法,其特征在于,所述根据所述阅读报告更新已接收的所述消息的状态,包括:
将所述阅读报告对应的消息的识别信息与本地已接收消息的识别信息匹配,找到对应的所述消息,将所述消息的状态更新为已读。
10.一种实现已读状态同步的接收方设备,其特征在于,所述接收方设备包括:
接收单元,用于接收应用服务器发送的包含阅读报告请求的消息;
阅读处理单元,用于阅读所述接收单元接收的所述消息;在阅读所述消息后向所述应用服务器发送阅读报告;
所述接收单元,还用于接收所述应用服务器发送的所述消息的阅读报告;
同步单元,用于根据应用服务器发送的所述消息的所述阅读报告更新所述消息的状态;
所述阅读处理单元,包括:
判断单元,用于根据所述消息的头域值判断所述消息中包含的阅读报告请求是发送方的阅读报告请求,还是应用服务器为了状态同步增加的阅读报告请求;
阅读单元,用于阅读所述消息;并在所述判断单元判断所述消息中包含发送方的阅读报告请求时,根据该阅读报告请求,发送设置了用于表示回复发送方的头域值的阅读报告给所述应用服务器;或者,判断所述消息中包含发送方的阅读报告请求,但接收方确定不回复阅读报告时,构造设置了用于状态同步的头域值的阅读报告并发送给所述应用服务器;或者,判断所述消息中包含所述增加的用于状态同步的阅读报告请求,则根据该阅读报告请求,构造设置了用于状态同步的头域值的阅读报告并发送给所述应用服务器。
11.根据权利要求10所述的接收方设备,其特征在于,所述同步单元包括:
识别单元,用于将所述阅读报告对应的消息的识别信息与本地已接收消息的识别信息匹配,找到对应的所述消息;
更新单元,用于将对应的所述消息的状态更新为已读。
12.一种实现已读状态同步的系统,其特征在于,包括:应用服务器和接收方设备;所述接收方设备,包括至少一个接收方第一设备,以及至少一个接收方第二设备;
应用服务器,用于收到发送方发送的消息后,向所述接收方设备发送包含阅读报告请求的消息;
接收方第一设备,用于接收应用服务器发送的消息,并在阅读所述消息后向所述应用服务器发送阅读报告;
其中,所述应用服务器,根据所述收到所述接收方的设备发送的阅读报告的头域值判断该阅读报告类型,并根据判断结果向所述接收方的设备中发送所述阅读报告的设备之外的其它设备发送用于同步的阅读报告,通知所述其它设备根据该阅读报告更新所述消息的状态;具体用于:
若该阅读报告中包含了用于表示回复发送方的头域值,则判断该阅读报告是所述接收方阅读消息的设备根据该消息中包含的所述发送方的阅读报告请求回复的阅读报告;则向所述接收方的所述其它设备发送用于同步的阅读报告;
若该阅读报告中包含了用于状态同步的头域值,则判断该阅读报告是所述接收方阅读消息的设备根据该消息中包含的所述发送方的阅读报告请求,或是所述接收方阅读消息的设备根据所述消息中增加的用于状态同步的阅读报告请求,而构造的用于状态同步的阅读报告;则向所述接收方的所述其它设备发送用于同步的阅读报告;
接收方第二设备,用于接收应用服务器发送的消息,以及接收所述应用服务器发送的所述消息的所述阅读报告,并根据应用服务器发送的所述阅读报告更新已接收的所述消息的状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102232718A CN101686141B (zh) | 2008-09-28 | 2008-09-28 | 一种实现已读状态同步的方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102232718A CN101686141B (zh) | 2008-09-28 | 2008-09-28 | 一种实现已读状态同步的方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101686141A CN101686141A (zh) | 2010-03-31 |
CN101686141B true CN101686141B (zh) | 2012-01-04 |
Family
ID=42049127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102232718A Expired - Fee Related CN101686141B (zh) | 2008-09-28 | 2008-09-28 | 一种实现已读状态同步的方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101686141B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102355635A (zh) * | 2011-06-29 | 2012-02-15 | 莫雅静 | 一种通信方法和通信装置 |
CN103457827B (zh) * | 2012-06-04 | 2016-12-14 | 联想(北京)有限公司 | 一种信息处理的方法及一种电子设备 |
CN112152910A (zh) * | 2015-02-16 | 2020-12-29 | 钉钉控股(开曼)有限公司 | 通讯方法 |
CN106533897A (zh) * | 2015-09-15 | 2017-03-22 | 北大方正集团有限公司 | 一种判断即时通讯消息已读的方法及装置 |
CN106899479A (zh) * | 2015-12-17 | 2017-06-27 | 北京奇虎科技有限公司 | 消息处理方法及装置 |
CN107342965A (zh) * | 2016-04-28 | 2017-11-10 | 华为技术有限公司 | 富媒体通信方法、系统及服务器 |
CN106775262A (zh) * | 2017-02-06 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 一种未读图标显示管理的方法和系统 |
CN109194565A (zh) * | 2018-08-23 | 2019-01-11 | 广东五科技股份有限公司 | 一种消息已读状态提示方法和装置 |
CN112449221B (zh) * | 2019-08-29 | 2024-02-27 | 阿尔派株式会社 | 车载装置、信息播放控制方法以及信息播放控制系统 |
CN116708470B (zh) * | 2022-09-23 | 2025-01-17 | 荣耀终端有限公司 | 一种通知管理方法和电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1194755A (zh) * | 1995-08-31 | 1998-09-30 | 摩托罗拉公司 | 多个寻呼机状态同步系统和方法 |
CN1245314A (zh) * | 1998-07-15 | 2000-02-23 | 阿尔卡塔尔公司 | 确定分布式计算机网络系统状态一致全局观察的方法 |
-
2008
- 2008-09-28 CN CN2008102232718A patent/CN101686141B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1194755A (zh) * | 1995-08-31 | 1998-09-30 | 摩托罗拉公司 | 多个寻呼机状态同步系统和方法 |
CN1245314A (zh) * | 1998-07-15 | 2000-02-23 | 阿尔卡塔尔公司 | 确定分布式计算机网络系统状态一致全局观察的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101686141A (zh) | 2010-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101686141B (zh) | 一种实现已读状态同步的方法及设备 | |
US8769262B2 (en) | VPN connection system and VPN connection method | |
CN101355524A (zh) | 一种消息处理方法、系统、服务器和终端 | |
CN103095676A (zh) | 过滤系统以及过滤方法 | |
US7813299B2 (en) | Session control system for hierarchical relaying processes | |
JP2012080418A (ja) | ネットワーク認証における端末接続状態管理 | |
US20190166042A1 (en) | Method for data transmitting, centralized controller, forwarding plane device and communication apparatus | |
CN104301141B (zh) | 一种保存配置信息的方法、装置及系统 | |
US9058372B2 (en) | Database management in a wireless communication system | |
CN105165035A (zh) | 兼具文本消息传输的多媒体消息传输 | |
BRPI0812140B1 (pt) | Método para identificar um serviço, porta de protocolo de aplicativo e sistema de processamento de serviço | |
CN103139041A (zh) | 信息过滤的方法、转发信息的处理方法、装置及系统 | |
EP1309152B1 (en) | System and method for facilitating the selection of electronic services using infrared and a network address identification | |
KR101278282B1 (ko) | 광대역 무선 네트워크에서의 단말 관리 메시지 송수신 장치및 그 방법 | |
US20120066293A1 (en) | Data relay system, relay device, and computer readable medium | |
JP3827415B2 (ja) | 電子メールシステムの端末装置 | |
CN117097744A (zh) | 信息同步方法、受控设备、控制设备及电子设备 | |
CN102656846B (zh) | 通信系统、通信设备和通信控制方法 | |
CN101778055B (zh) | 一种消息处理方法和网络实体 | |
CN110809033B (zh) | 报文转发方法、装置及交换服务器 | |
WO2014026598A1 (zh) | 维护实体组端点mac地址获取的方法、装置及系统 | |
CN114416398A (zh) | 一种跨应用通讯方法和装置 | |
CN108900575B (zh) | 基于移动终端的长连接分级通信方法和系统 | |
CN113765783B (zh) | 通信方法及装置 | |
CN115379501B (zh) | Spn业务的传输方法、装置及网络节点 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120104 Termination date: 20150928 |
|
EXPY | Termination of patent right or utility model |