一种实现消息推送的方法和系统的制作方法

文档序号:7983170阅读:200来源:国知局
一种实现消息推送的方法和系统的制作方法
【专利摘要】本发明公开了一种实现消息推送的方法和系统,所述方法包括:代理服务器在通过共享点服务器接收到客户端的休眠请求后,将客户端的状态更新为休眠状态并通过共享点服务器向客户端回复休眠成功响应,将从核心应用服务器接收的所述客户端的消息进行保存,并从所述消息中提取信息生成推送通知,通过共享点服务器将推送推知转发给推送服务器进行推送;代理服务器在通过共享点服务器接收到客户端的取消休眠请求后,将客户端的状态更新为非休眠状态并通过共享点服务器向客户端回复取消成功响应,取出保存的所述客户端的消息,通过共享点服务器将所述消息发送给客户端。本发明能够解决客户端在取消休眠重新连接时,无法获取推送通知的详细内容的问题。
【专利说明】一种实现消息推送的方法和系统
【技术领域】
[0001]本发明涉及通信领域,特别涉及一种实现消息推送的方法和系统。
【背景技术】
[0002]在即时通讯应用中,可以使用HTML5技术使客户端应用于终端,例如在IPAD设备上运行。在此种应用场景下,客户端可以在后台工作,例如按下IPAD的HOME键。此时,需要应用推送服务器,例如APNS (Apple Push Notification Service,苹果推送通知服务),向终端用户推送通知消息。现有技术中,对于简易客户端使用代理服务器,例如IMAS(InstantMessage Agent Service,即时消息代理服务),来支持客户端与核心应用服务器间交互。因此,需要代理服务器能够支持推送推送通知的功能。
[0003]现有技术中,代理服务器会将从核心应用服务器接收的消息发送给共享点服务器,例如WSS (Windows Share Service,共享点服务),共享服务器通过推送服务器进行推送,终端接收推送通知。但是,当客户端在取消休眠重新连接时,客户端却无法获取推送通知的详细内容,导致客户端消息数据丢失。

【发明内容】

[0004]本发明提供了一种实现消息推送的方法和系统,以解决客户端在取消休眠重新连接时,无法获取推送通知的详细内容的问题。
[0005]本发明公开了一种实现消息推送的方法,所述方法包括:
[0006]代理服务器在通过共享点服务器接收到客户端的休眠请求后,将客户端的状态更新为休眠状态并通过共享点服务器向客户端回复休眠成功响应,将从核心应用服务器接收的所述客户端的消息进行保存,并从所述消息中提取信息生成推送通知,通过共享点服务器将推送推知转发给推送服务器进行推送;
[0007]代理服务器在通过共享点服务器接收到客户端的取消休眠请求后,将客户端的状态更新为非休眠状态并通过共享点服务器向客户端回复取消成功响应,取出保存的所述客户端的消息,通过共享点服务器将所述消息发送给客户端。
[0008]较佳的,所述代理服务器将从核心应用服务器接收的所述客户端的消息进行保存具体包括:
[0009]代理服务器将所述消息封装为消息类型MessageType后,保存封装后的消息。
[0010]较佳的,所述代理服务器取出保存的所述客户端的消息,通过共享点服务器将所述消息发送给客户端具体包括:
[0011]代理服务器取出保存的客户端的MessageType类型消息,将该消息通过数据包发送给共享点服务器;
[0012]共享点服务器解析出接收的数据包的类型为MessageType类型后,确定所述数据包为消息,将所述消息发送给客户端。
[0013]较佳的,所述代理服务器从所述消息中提取信息生成推送通知具体包括:[0014]代理服务器从所述消息中提取信息,按与共享点服务器约定的消息推送类型MessagePushType封装提取的信息,生成推送通知。
[0015]较佳的,所述代理服务器通过共享点服务器和推送服务器推送所述推送通知具体包括:
[0016]代理服务器将推送通知通过数据包发送给共享点服务器;
[0017]共享点服务器解析出接收的数据包的类型为MessagePushType类型后,确定所述数据包为推送通知;
[0018]共享点服务器将推送通知发送给推送服务器,由推送服务器推送所述推送通知。
[0019]较佳的,提取的所述信息至少包括:消息ID、接收消息的用户、消息来源和发送时间。
[0020]本发明还公开了一种实现消息推送的系统,所述系统包括:客户端、代理服务器、核心应用服务器、共享点服务器和推送服务器;
[0021]所述代理服务器,用于在在通过共享点服务器接收到客户端的休眠请求后,将客户端的状态更新为休眠状态并通过共享点服务器向客户端回复休眠成功响应,将从核心应用服务器接收的所述客户端的消息进行保存,并从所述消息中提取信息生成推送通知,通过共享点服务器将推送推知转发给推送服务器进行推送,并在通过共享点服务器接收到客户端的取消休眠请求后,将客户端的状态更新为非休眠状态并通过共享点服务器向客户端回复取消成功响应,取出保存的所述客户端的消息,通过共享点服务器将所述消息发送给客户端;
[0022]所述共享点服务器,用于向代理服务器转发客户端的休眠请求、取消休眠请求,向客户端转发代理服务器回复的休眠成功响应、取消成功响应,在客户端的状态更新为非休眠状态后将从代理服务器接收的消息转发给客户端,以及在客户端的状态为休眠状态时将从代理服务器接收的推送通知转发给推送服务器进行推送;
[0023]所述推送服务器,用于向客户端推送从共享点服务器接收的推送通知。
[0024]较佳的,所述代理服务器在取出保存的所述客户端的消息,通过共享点服务器将所述消息发送给客户端后,还用于释放保存所述消息的存储空间。
[0025]较佳的,提取的所述信息至少包括:消息ID、接收消息的用户、消息来源和发送时间。
[0026]本发明的有益效果是:通过代理服务器获知客户端进入休眠状态后,将从核心应用服务器接收的所述客户端的消息保存,并根据消息生成推送通知,通过共享点服务器和推送服务器推送所述推送通知,以及代理服务器获知客户端取消休眠状态后,取出保存的所述客户端的消息,通过共享点服务器将所述消息发送给客户端;能够在客户端休眠期间实现消息推送的同时,保证客户端在取消休眠重新连接时,获取推送通知的详细内容,避免客户端消息数据的丢失。
【专利附图】

【附图说明】
[0027]图1为本发明实现消息推送的方法的流程图。
[0028]图2为本发明一实施例中代理服务器对接收的客户端消息进行处理的流程图。
[0029]图3为本发明一实施例中实现消息推送的方法的流程图。[0030]图4为本发明实现消息推送的系统的结构图。
【具体实施方式】
[0031]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0032]参见图1,为本发明提供的实现消息推送的方法。
[0033]所述方法包括如下步骤。
[0034]步骤S100,代理服务器在通过共享点服务器接收到客户端的休眠请求后,将客户端的状态更新为休眠状态并通过共享点服务器向客户端回复休眠成功响应,将从核心应用服务器接收的所述客户端的消息进行保存,并从所述消息中提取信息生成推送通知,通过共享点服务器将推送推知转发给推送服务器进行推送。
[0035]步骤S200,代理服务器在通过共享点服务器接收到客户端的取消休眠请求后,将客户端的状态更新为非休眠状态并通过共享点服务器向客户端回复取消成功响应,取出保存的所述客户端的消息,通过共享点服务器将所述消息发送给客户端。
[0036]举例而言,代理服务器可以提供一个休眠接口供共享点服务器调用。通过此接口可以进行休眠及取消休眠的操作。代理服务器内部维护该用户的休眠状态。如:客户端登录后,代理服务器将客户端状态设置为非休眠状态。
[0037]采用本实施例中方法,客户端每次状态变化时向代理服务器发送请求,收到回复后完成状态变化,能够保证代理服务器中客户端状态与客户端的实际状态相一致。
[0038]上述方法中代理服务器、核心应用服务器、共享点服务器和推送服务器可以应用硬件实现,也可以通过功能模块实现,而且上述装置可以分布在各自独立的物理设备上,也可以位于同一物理设备,彼此通过接口进行交互,在此不做特别限制。
[0039]通过上述方法,能够在客户端休眠期间进行消息推送的同时,保证客户端在取消休眠重新连接时,获取推送通知的详细内容,避免客户端消息数据的丢失。
[0040]在一实施例中,为将客户端取消休眠状态和休眠状态下的消息数据区分,在客户端取消休眠状态后,代理服务器传送给共享点服务器的数据包的类型为消息类型MessageType0客户端为休眠状态时,代理服务器传送给共享点服务器的数据包的类型为消息推送类型MessagePushType。本申请中客户端的休眠状态,指的是客户端转入后台运行的状态,例如按下IPAD的HOME键后,IPAD上运行的客户端转入后台运行,这就是一种休眠状态。
[0041]在客户端为休眠状态时,代理服务器将新收到的消息重新封装为MessagePushType,提供给共享点服务器通过推送服务器进行推送。此外还会将此消息封装成MessageType进行单独缓存,用于客户端取消休眠之后获知详细内容时使用。
[0042]在取消休眠状态后,代理服务器将缓存的该客户端的MessageType消息发送给共享点服务器,由共享点服务器将该消息发送给客户端。
[0043]在本实施例中,涉及改进的处理过程如下所述,其他处理过程与上述方法中相同,在此就相同部分省略描述。
[0044]所述步骤SlOO中代理服务器将从核心应用服务器接收的所述客户端的消息进行保存,从所述消息中提取信息生成推送通知,通过共享点服务器将推送推知转发给推送服务器进行推送具体如图2所示。
[0045]步骤S110,代理服务器将所述消息封装为消息类型MessageType后,保存封装后的消息。
[0046]步骤S120,代理服务器从所述消息中提取信息,按与共享点服务器约定的消息推送类型MessagePushType封装提取的信息,生成推送通知。
[0047]提取的信息至少可以包括消息ID、接收消息的用户、消息来源、和发送时间等,因此根据提取的信息生成的推送通知中对应包含:消息ID、接收消息的用户、消息来源、和发送时间等。其中,消息ID为从核心应用服务器接收到的消息的ID,消息来源为发送消息的用户。
[0048]步骤S130,代理服务器将推送通知通过数据包发送给共享点服务器。
[0049]步骤S140,共享点服务器解析出接收的数据包的类型为MessagePushType类型后,确定数据包为推送通知。
[0050]步骤S150,共享点服务器将推送通知发送给推送服务器,由推送服务器推送该推送通知。
[0051]所述步骤S200中代理服务器取出保存的所述客户端的消息,通过共享点服务器将所述消息发送给客户端具体包括:
[0052]步骤S210,代理服务器取出保存的客户端的MessageType类型消息,将该消息通过数据包发送给共享点服务器。
[0053]步骤S220,共享点服务器解析出接收的数据包的类型为MessageType类型后,确定接收的数据包为消息,将所述消息发送给客户端。
[0054]在一实施例中,在取消休眠状态后,代理服务器将缓存的该客户端的MessageType消息发送给共享点服务器,发送完成之后,MessageType缓存被回收,以避免再次休眠/取消休眠之后消息重复接收。
[0055]在本实施例中,涉及改进的处理过程如下所述,其他处理过程与上述方法中相同,在此就相同部分省略描述。
[0056]所述步骤S200中代理服务器取出保存的所述客户端的消息,通过共享点服务器将所述消息发送给客户端后还包括代理服务器释放用于保存所述消息的存储空间。
[0057]采用本实施例中方法,存储资源被及时回收既能够避免再次休眠/取消休眠之后消息重复接收,又能够将已发送消息的存储资源释放出来供存储其他信息使用,节约了存储资源。
[0058]在本实施例中,代理服务器具体为IMAS,共享点服务器具体为WSS,推送服务器具体为APNS。
[0059]通过请求IMAS休眠接口,进行休眠操作,IMAS记录该用户休眠状态。IMAS收到核心应用服务器传来的消息数据,将数据封装成MessageType和MessagePushType。将MessageType进行缓存处理、将MessagePushType推送给WSS,之后WSS发起APNS推送。
[0060]通过请求IMAS休眠接口,进行取消休眠操作,IMAS取消该用户休眠状态。IMAS将之前缓存的MessageType数据进行发送,发送成功后进行MessageType缓存回收。
[0061]参见图3,为本发明一实施例中实现消息推送的方法的流程图。
[0062]步骤S301,客户端向WSS发送休眠请求。[0063]步骤S302,WSS将休眠请求转发给IMAS。
[0064]步骤S303,IMAS将客户端的状态更新为休眠状态。
[0065]步骤S304,IMAS向WSS发送休眠成功响应。
[0066]步骤S305,WSS将IMAS的休眠成功的响应发送给客户端。
[0067]步骤S306,IMAS从核心应用服务器中接收到客户端的消息。
[0068]步骤S307,IMAS向核心应用服务器回复完成接收。
[0069]步骤S308,IMAS将所述消息封装为消息类型MessageType后,保存封装后的消息,从消息中提取信息,将信息封装为MessagePushType类型,生成推送通知
[0070]步骤S309,IMAS通过数据包向WSS发送推送通知。
[0071]步骤S310,WSS回复接收完成。
[0072]步骤S311, WSS解析出接收的数据包的类型为MessagePushType类型后,确定该数据包为推送通知,将推送通知发送给APNS,由APNS推送该推送通知。
[0073]APNS将该推送通知推送给客户端所在终端,在图3中没有示出。
[0074]步骤S312,客户端向WSS发送取消休眠请求。
[0075]步骤S313,WSS将取消休眠请求转发给IMAS。
[0076]步骤S314,IMAS将客户端的状态更新为非休眠状态。
[0077]步骤S315,IMAS向WSS发送取消成功响应。
[0078]步骤S316,WSS将IMAS的取消成功的响应发送给客户端。
[0079]步骤S317, IMAS取出保存的客户端的MessageType类型消息,将所述消息通过数据包发送给WSS。
[0080]步骤S318,WSS回复接收成功。
[0081]步骤S319,WSS解析出接收的数据包的类型为MessageType类型后,确定该数据包为消息,向客户端发送该消息。
[0082]步骤S320,IMAS回收保存消息的存储空间。
[0083]一种实现消息推送的系统,如图4所示。
[0084]所述系统包括:客户端100、共享点服务器200、代理服务器300、核心应用服务器400和推送服务器500。
[0085]代理服务器300,用于在在通过共享点服务器200接收到客户端100的休眠请求后,将客户端100的状态更新为休眠状态并通过共享点服务器200向客户端100回复休眠成功响应,将从核心应用服务器400接收的所述客户端100的消息进行保存,并从所述消息中提取信息生成推送通知,通过共享点服务器200将推送推知转发给推送服务器500进行推送,并在通过共享点服务器200接收到客户端100的取消休眠请求后,将客户端100的状态更新为非休眠状态并通过共享点服务器200向客户端100回复取消成功响应,取出保存的所述客户端100的消息,通过共享点服务器200将所述消息发送给客户端100。
[0086]共享点服务器200,用于向代理服务器300转发客户端100的休眠请求、取消休眠请求,向客户端100转发代理服务器300回复的休眠成功响应、取消成功响应,在客户端100的状态更新为非休眠状态后将从代理服务器300接收的消息转发给客户端100,以及在客户端100的状态为休眠状态时将从代理服务器300接收的推送通知转发给推送服务器500进行推送;[0087]推送服务器500,用于向客户端100所在的终端推送从共享点服务器200接收的推送通知。
[0088]在一实施例中,代理服务器300在将从核心应用服务器400接收的所述客户端100的消息进行保存时具体用于:将所述消息封装为消息类型MessageType后,保存封装后的消息。
[0089]代理服务器300在取出保存的所述客户端100的消息,通过共享点服务器200将所述消息发送给客户端100时具体用于:取出保存的客户端100的MessageType类型消息,将该消息通过数据包发送给共享点服务器200。
[0090]共享点服务器200具体用于:解析出接收的数据包的类型为MessageType类型后,确定接收的数据包为消息,将所述消息发送给客户端100。
[0091]在一实施例中,代理服务器300在从所述消息中提取信息生成推送通知,通过共享点服务器200将推送推知转发给推送服务器500进行推送具体用于:从所述消息中提取信息,按与共享点服务器200约定的消息推送类型MessagePushType封装提取的信息,生成推送通知,将推送通知通过数据包发送给共享点服务器200。
[0092]提取的信息至少包括:消息ID、接收消息的用户、消息来源和发送时间等。
[0093]共享点服务器200具体用于:解析出接收的数据包的类型为MessagePushType类型后,确定接收的数据包为推送通知,将推送通知发送给推送服务器500,由推送服务器500推送所述推送通知。
[0094]在一实施例中,所述代理服务器300在取出保存的所述客户端100的消息,通过共享点服务器200将所述消息发送给客户端100后还用于释放保存所述消息的存储空间。
[0095]在一实施例中,客户端100具体用于:通过共享点服务器200向代理服务器300发送休眠请求。代理服务器300具体用于:将客户端100的状态更新为休眠状态后,通过共享点服务器200向客户端100回复休眠成功响应。
[0096]在一实施例中,客户端100具体用于:通过共享点服务器200向代理服务器300发送取消休眠请求。代理服务器300具体用于:将客户端100的状态更新为非休眠状态后,通过共享点服务器200向客户端100回复取消成功响应。
[0097]以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
【权利要求】
1.一种实现消息推送的方法,其特征在于,所述方法包括: 代理服务器在通过共享点服务器接收到客户端的休眠请求后,将客户端的状态更新为休眠状态并通过共享点服务器向客户端回复休眠成功响应,将从核心应用服务器接收的所述客户端的消息进行保存,并从所述消息中提取信息生成推送通知,通过共享点服务器将推送推知转发给推送服务器进行推送; 代理服务器在通过共享点服务器接收到客户端的取消休眠请求后,将客户端的状态更新为非休眠状态并通过共享点服务器向客户端回复取消成功响应,取出保存的所述客户端的消息,通过共享点服务器将所述消息发送给客户端。
2.根据权利要求1所述的方法,其特征在于, 所述代理服务器将从核心应用服务器接收的所述客户端的消息进行保存具体包括: 代理服务器将所述消息封装为消息类型MessageType后,保存封装后的消息。
3.根据权利要求2所述的方法,其特征在于, 所述代理服务器取出保存的所述客户端的消息,通过共享点服务器将所述消息发送给客户端具体包括: 代理服务器取出保存的客户端的MessageType类型消息,将该消息通过数据包发送给共享点服务器; 共享点服务器解析出接收的数据包的类型为MessageType类型后,确定所述数据包为消息,将所述消息发送给客户端。
4.根据权利要求1所述的方法,其特征在于, 所述代理服务器从所述消息中提取信息生成推送通知具体包括: 代理服务器从所述消息中提取信息,按与共享点服务器约定的消息推送类型MessagePushType封装提取的信息,生成推送通知。
5.根据权利要求4所述的方法,其特征在于, 所述代理服务器通过共享点服务器将推送推知转发给推送服务器进行推送具体包括: 代理服务器将推送通知通过数据包发送给共享点服务器; 共享点服务器解析出接收的数据包的类型为MessagePushType类型后,确定所述数据包为推送通知; 共享点服务器将推送通知发送给推送服务器,由推送服务器推送所述推送通知。
6.根据权利要求1所述的方法,其特征在于, 所述代理服务器取出保存的所述客户端的消息,通过共享点服务器将所述消息发送给客户端后还包括: 代理服务器释放用于保存所述消息的存储空间。
7.根据权利要求1或4所述的方法,其特征在于, 提取的所述信息至少包括:消息ID、接收消息的用户、消息来源和发送时间。
8.一种实现消息推送的系统,其特征在于,所述系统包括:客户端、代理服务器、核心应用服务器、共享点服务器和推送服务器; 所述代理服务器,用于在在通过共享点服务器接收到客户端的休眠请求后,将客户端的状态更新为休眠状态并通过共享点服务器向客户端回复休眠成功响应,将从核心应用服务器接收的所述客户端的消息进行保存,并从所述消息中提取信息生成推送通知,通过共享点服务器将推送推知转发给推送服务器进行推送,并在通过共享点服务器接收到客户端的取消休眠请求后,将客户端的状态更新为非休眠状态并通过共享点服务器向客户端回复取消成功响应,取出保存的所述客户端的消息,通过共享点服务器将所述消息发送给客户端; 所述共享点服务器,用于向代理服务器转发客户端的休眠请求、取消休眠请求,向客户端转发代理服务器回复的休眠成功响应、取消成功响应,在客户端的状态更新为非休眠状态后将从代理服务器接收的消息转发给客户端,以及在客户端的状态为休眠状态时将从代理服务器接收的推送通知转发给推送服务器进行推送; 所述推送服务器,用于向客户端所在的终端推送从共享点服务器接收的推送通知。
9.根据权利要求8所述的系统,其特征在于, 所述代理服务器在取出保存的所述客户端的消息,通过共享点服务器将所述消息发送给客户端后,还用于释放保存所述消息的存储空间。
10.根据权利要求8所述的系统,其特征在于,提取的所述信息至少包括:消息ID、接收消息的用户、消息来源和发送时间`。
【文档编号】H04L29/08GK103685396SQ201210342773
【公开日】2014年3月26日 申请日期:2012年9月14日 优先权日:2012年9月14日
【发明者】嵇澄宇 申请人:北京神州泰岳软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1