一种消息发送方法和设备
技术领域
本申请涉及互联网技术领域,尤其是涉及了一种消息发送方法和设备。
背景技术
现有技术中,当需要将待推送内容(如:营销内容或者产品信息等)通知给用户时,业务服务器会通过一个特定消息发送通道向用户设备发送携带了待推送内容的消息。但是,业务服务器通过一个特定消息发送通道向用户设备发送消息时,无法保证该消息一定会发送到用户设备上,从而导致可能无法将待推送内容通知给用户,继而直接影响到业务的发展和推广。
为了将待推送内容通知给用户,需要保证将携带了待推送内容的消息发送到用户设备上。基于此,现有技术中,业务服务器需要同时通过多个消息发送通道向用户设备发送携带了待推送内容的消息,从而保证可以将待推送内容通知给用户。但是,业务服务器同时通过多个消息发送通道向用户设备发送消息时,会造成***资源和网络资源的浪费,而且用户设备收到多个携带有相同待推送内容的消息时,还会使用户有被骚扰感,影响用户使用感受。
发明内容
本申请实施例提供一种消息发送方法和设备,以将待推送内容通知给用户,并避免造成***资源和网络资源的浪费,并提高用户的使用感受。
为达到上述目的,本申请实施例提供一种消息发送方法,所述方法包括:
推送服务器获得待推送内容;
针对多个消息发送通道,所述推送服务器获得每个消息发送通道在指定时间内的登录概率,并确定登录概率最高的消息发送通道;
所述推送服务器利用所述登录概率最高的消息发送通道发送携带了所述待推送内容的消息。
所述推送服务器获得待推送内容,具体包括:
在需要向用户发送待推送内容时,所述推送服务器接收来自业务服务器的携带了所述待推送内容的消息,并从所述消息中获得所述待推送内容。
所述推送服务器利用所述登录概率最高的消息发送通道发送携带了所述待推送内容的消息,之前还包括:
所述推送服务器判断最高的登录概率是否大于预设数值;如果是,则所述推送服务器执行利用所述登录概率最高的消息发送通道发送携带了所述待推送内容的消息的过程;如果否,则所述推送服务器确定特定消息发送通道,并利用所述特定消息发送通道发送携带了所述待推送内容的消息。
所述推送服务器获得每个消息发送通道在指定时间内的登录概率之前,所述方法还包括:
在需要向用户发送待推送内容时,所述推送服务器获得所述用户在多个消息发送通道分别对应的用户标识;
针对每个消息发送通道,所述推送服务器利用所述用户在消息发送通道对应的用户标识查询所述用户在所述消息发送通道下是否处于登录状态;
如果所述用户在所有消息发送通道下均为未处于登录状态,则所述推送服务器执行获得每个消息发送通道在指定时间内的登录概率,并利用登录概率最高的消息发送通道发送携带了所述待推送内容的消息的过程。
所述推送服务器利用所述用户在消息发送通道对应的用户标识查询所述用户在所述消息发送通道下是否处于登录状态之后,所述方法还包括:
如果所述用户只在一个消息发送通道下处于登录状态,则所述推送服务器通过该一个消息发送通道发送携带了所述待推送内容的消息;
如果所述用户在多个消息发送通道下处于登录状态,则所述推送服务器利用预设选择策略从所述多个消息发送通道中选择一个消息发送通道,并利用该选择的一个消息发送通道发送携带了所述待推送内容的消息。
所述推送服务器获得所述用户在多个消息发送通道分别对应的用户标识的过程,具体包括:
所述推送服务器接收来自业务服务器的携带了用户信息的消息;
当所述用户信息为用户在多个消息发送通道分别对应的用户标识时,所述推送服务器从来自所述业务服务器的消息中获得所述用户在多个消息发送通道分别对应的用户标识;或者,当所述用户信息为用户名时,所述推送服务器通过所述用户名查询本地维护的用户标识表项,以获得所述用户在多个消息发送通道分别对应的用户标识;其中,所述用户标识表项用于记录用户名与用户在多个消息发送通道分别对应的用户标识之间的对应关系。
针对每个消息发送通道,所述推送服务器利用所述用户在消息发送通道对应的用户标识查询所述用户在所述消息发送通道下是否处于登录状态的过程,具体包括:
所述推送服务器向消息发送通道对应的应用服务器发送携带了用户在所述消息发送通道对应的用户标识的请求消息,由所述应用服务器利用所述用户标识查询所述用户在所述消息发送通道下是否处于登录状态;
所述推送服务器接收来自所述应用服务器的携带了所述用户在所述消息发送通道下处于登录状态或者未处于登录状态的响应消息;
所述推送服务器通过所述响应消息中携带的信息确定所述用户在所述消息发送通道下处于登录状态或者在所述消息发送通道下未处于登录状态。
所述推送服务器通过消息发送通道发送携带了所述待推送内容的消息的过程,具体包括:
所述推送服务器生成各应用服务器分别对应的消息模板,并将各应用服务器分别对应的消息模板分别发送给所述各应用服务器;
在通过消息发送通道发送携带所述待推送内容的消息时,所述推送服务器将所述待推送内容发送给所述消息发送通道对应的应用服务器,由所述应用服务器利用消息模板和所述待推送内容生成消息,并发送所述消息。
本申请实施例提供一种推送服务器,所述推送服务器具体包括:
获得模块,用于获得待推送内容;
确定模块,用于针对多个消息发送通道,获得每个消息发送通道在指定时间内的登录概率,并确定登录概率最高的消息发送通道;
发送模块,用于利用所述登录概率最高的消息发送通道发送携带了所述待推送内容的消息。
所述获得模块,具体用于在需要向用户发送待推送内容时,接收来自业务服务器的携带了待推送内容的消息,并从所述消息中获得所述待推送内容。
所述发送模块,进一步用于判断最高的登录概率是否大于预设数值;
如果是,则执行利用所述登录概率最高的消息发送通道发送携带了所述待推送内容的消息的过程;如果否,则确定特定消息发送通道,并利用所述特定消息发送通道发送携带了所述待推送内容的消息。
所述获得模块,还用于在需要向用户发送待推送内容时,获得所述用户在多个消息发送通道分别对应的用户标识;
所述确定模块,还用于针对每个消息发送通道,利用所述用户在消息发送通道对应的用户标识查询用户在所述消息发送通道下是否处于登录状态;
所述发送模块,进一步用于如果所述用户在所有消息发送通道下均为未处于登录状态,则执行获得每个消息发送通道在指定时间内的登录概率,利用登录概率最高的消息发送通道发送携带了所述待推送内容的消息的过程。
所述发送模块,还用于如果所述用户只在一个消息发送通道下处于登录状态,则通过该一个消息发送通道发送携带了所述待推送内容的消息;
如果所述用户在多个消息发送通道下处于登录状态,则利用预设选择策略从所述多个消息发送通道中选择一个消息发送通道,并利用该选择的一个消息发送通道发送携带了所述待推送内容的消息。
所述获得模块,具体用于接收来自业务服务器的携带了用户信息的消息;
当所述用户信息为用户在多个消息发送通道分别对应的用户标识时,从来自所述业务服务器的消息中获得所述用户在多个消息发送通道分别对应的用户标识;或者,当所述用户信息为用户名时,通过所述用户名查询所述推送服务器本地维护的用户标识表项,以获得所述用户在多个消息发送通道分别对应的用户标识;其中,所述用户标识表项用于记录用户名与用户在多个消息发送通道分别对应的用户标识之间的对应关系。
所述确定模块,具体用于向消息发送通道对应的应用服务器发送携带了用户在所述消息发送通道对应的用户标识的请求消息,由所述应用服务器利用所述用户标识查询所述用户在所述消息发送通道下是否处于登录状态;
接收来自所述应用服务器的携带了所述用户在所述消息发送通道下处于登录状态或者未处于登录状态的响应消息;
通过所述响应消息中携带的信息确定所述用户在所述消息发送通道下处于登录状态或者在所述消息发送通道下未处于登录状态。
所述发送模块,进一步用于生成各应用服务器分别对应的消息模板,并将各应用服务器分别对应的消息模板分别发送给所述各应用服务器;
在通过消息发送通道发送携带所述待推送内容的消息时,将所述待推送内容发送给所述消息发送通道对应的应用服务器,由所述应用服务器利用消息模板和所述待推送内容生成消息,并发送所述消息。
与现有技术相比,本申请实施例至少具有以下优点:本申请实施例中,能够通过登录概率最高的消息发送通道向用户设备发送携带待推送内容的消息,从而尽量将待推送内容通知给用户,提高将待推送内容通知到用户的概率,并且可以避免造成***资源和网络资源的浪费,节省***资源和网络资源,并且可以避免对用户造成骚扰,从而提高用户的使用感受。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据本申请实施例的这些附图获得其他的附图。
图1是本申请实施例一提出的应用场景示意图;
图2是本申请实施例一提出的一种消息发送方法流程示意图;
图3是本申请实施例二提出的一种推送服务器的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一
针对现有技术中存在的问题,本申请实施例一提出一种消息发送方法,以图1为本申请实施例的应用场景示意图,该消息发送方法应用于包括推送服务器、业务服务器和应用服务器的***中。推送服务器为本申请实施例提出的用于决策消息发送通道(发送通道也可称为渠道)的服务器,业务服务器为有待推送内容需要发送给用户的服务器,应用服务器为各应用对应的服务器,如邮件对应的服务器、微信对应的服务器、短信对应的服务器等。
在上述应用场景下,如图2所示,该消息发送方法可以包括以下步骤:
步骤201,推送服务器获得待推送内容。
本申请实施例中,推送服务器获得待推送内容的过程,具体包括但不限于:在业务服务器需要向用户发送待推送内容时,推送服务器接收来自业务服务器的携带了待推送内容的消息,并从该消息中获得待推送内容。
步骤202,针对多个消息发送通道,推送服务器获得每个消息发送通道在指定时间内的登录概率,并确定登录概率最高的消息发送通道。
其中,消息发送通道包括但不限于:旺旺通道、邮件通道、短信通道、网站站内信息通道、应用客户端通道、QQ通道、微信通道、MSN通道等。
步骤203,推送服务器利用登录概率最高的消息发送通道发送携带了待推送内容的消息,即推送服务器通过登录概率最高的消息发送通道将携带待推送内容的消息发送给相应的用户设备,由用户设备将待推送内容显示给用户。
本申请实施例中,推送服务器利用登录概率最高的消息发送通道发送携带了待推送内容的消息,之前还包括:推送服务器判断最高的登录概率是否大于预设数值;如果是,则推送服务器执行利用登录概率最高的消息发送通道发送携带了待推送内容的消息的过程;如果否,则推送服务器确定特定消息发送通道,并利用特定消息发送通道发送携带了待推送内容的消息。
具体的,推送服务器获得每个消息发送通道在指定时间(如7天)内的登录概率;如果最高的登录概率大于预设数值(如50%),则推送服务器从所有消息发送通道中选择登录概率最高的消息发送通道,并利用登录概率最高的消息发送通道发送携带了待推送内容的消息;如果最高的登录概率不大于预设数值,则推送服务器从所有消息发送通道中选择特定消息发送通道(如短信通道),并利用特定消息发送通道发送携带了待推送内容的消息。
例如,推送服务器获得每个消息发送通道(如微信通道、旺旺通道、邮件通道、短信通道等)在指定时间(如7天)内的登录概率;假设用户在最近7天内登录微信通道的概率为50%,在最近7天内登录旺旺通道的概率为40%,在最近7天内登录邮件通道的概率为30%,在最近7天内登录短信通道的概率为30%。假设预设数值为40%,则最高的登录概率(即50%)大于预设数值(如40%),此时推送服务器从所有消息发送通道中选择登录概率最高的消息发送通道(即微信通道);之后,推送服务器通过微信通道发送携带待推送内容A的消息,即推送服务器通过微信通道将携带待推送内容A的消息发送给微信号码1当前所在的移动终端,由移动终端将待推送内容A显示给用户。假设预设数值为50%,则最高的登录概率(即50%)不大于预设数值(如50%),此时推送服务器从所有消息发送通道中选择特定消息发送通道(如短信通道);之后,推送服务器通过短信通道发送携带待推送内容A的消息,即推送服务器通过短信通道将携带待推送内容A的消息发送给手机号码1当前所在的移动终端,由该移动终端将待推送内容A显示给用户。
本申请实施例中,推送服务器获得每个消息发送通道在指定时间内的登录概率之前,即执行步骤202和步骤203之前,在需要向用户发送待推送内容时,推送服务器还将获得用户在多个消息发送通道分别对应的用户标识。针对每个消息发送通道,推送服务器利用用户在消息发送通道对应的用户标识查询用户在消息发送通道下是否处于登录状态。如果用户在所有消息发送通道下均为未处于登录状态(如当所有消息发送通道包括旺旺通道、邮件通道、短信通道和微信通道时,用户在微信通道、旺旺通道、邮件通道、短信通道均为未处于登录状态),则推送服务器执行获得每个消息发送通道在指定时间内的登录概率,并利用登录概率最高的消息发送通道发送携带了待推送内容的消息的过程,即执行步骤202和步骤203的过程。如果用户只在一个消息发送通道下处于登录状态(如当所有消息发送通道包括旺旺通道、邮件通道、短信通道和微信通道时,用户在微信通道处于登录状态,在旺旺通道、邮件通道、短信通道均为未处于登录状态),则推送服务器通过该一个消息发送通道发送携带了待推送内容的消息。如果用户在多个消息发送通道下处于登录状态(如当所有消息发送通道包括旺旺通道、邮件通道、短信通道和微信通道时,用户在微信通道、旺旺通道、邮件通道、短信通道均为处于登录状态),则推送服务器利用预设选择策略从多个消息发送通道中选择一个消息发送通道,并利用该选择的一个消息发送通道发送携带了待推送内容的消息。
本申请实施例中,推送服务器获得用户在多个消息发送通道分别对应的用户标识的过程中,相应的获得方式具体包括但不限于如下方式:推送服务器接收来自业务服务器的携带了用户信息的消息;当用户信息为用户在多个消息发送通道分别对应的用户标识时,推送服务器从来自业务服务器的消息中获得用户在多个消息发送通道分别对应的用户标识;或者,当用户信息为用户名时,推送服务器通过用户名查询本地维护的用户标识表项,以获得用户在多个消息发送通道分别对应的用户标识;其中,用户标识表项用于记录用户名与用户在多个消息发送通道分别对应的用户标识之间的对应关系。
具体的,在业务服务器需要向用户发送待推送内容时,推送服务器获得该待推送内容,并获得用户在多个消息发送通道分别对应的用户标识。
其中,消息发送通道包括但不限于:旺旺通道、邮件通道、短信通道、网站站内信息通道、应用客户端通道、QQ通道、微信通道、MSN通道。用户在消息发送通道对应的用户标识包括但不限于:用户在旺旺通道对应的用户标识为旺旺号、用户在邮件通道对应的用户标识为邮箱地址、用户在短信通道对应的用户标识为手机号码、用户在网站站内信息通道对应的用户标识为网站注册名、用户在应用客户端通道对应的用户标识为应用标识、用户在QQ通道对应的用户标识为QQ号码、用户在微信通道对应的用户标识为微信号码、用户在MSN通道对应的用户标识为MSN号码。当然,在实际应用中,消息发送通道和用户在消息发送通道对应的用户标识并不局限于上述情况,上述情况只是本申请实施例为了方便描述的示例,实际应用中可以任意选择。
本申请实施例中,在业务服务器需要向用户发送待推送内容(如:营销内容或者产品信息等)时,业务服务器会将待推送内容和用户信息通知给推送服务器,由推送服务器在后续过程中完成向用户发送待推送内容的过程。
本申请实施例中,推送服务器获得待推送内容,并获得用户在多个消息发送通道分别对应的用户标识的过程,具体包括但不限于如下方式:
方式一、推送服务器接收来自业务服务器的携带了待推送内容和用户信息的消息,并从来自业务服务器的消息中获得待推送内容。在方式一下,该用户信息为用户在多个消息发送通道分别对应的用户标识,因此,当用户信息为用户在多个消息发送通道分别对应的用户标识时,推送服务器直接从来自业务服务器的消息中获得用户在多个消息发送通道分别对应的用户标识。
例如,当业务服务器1需要向用户1发送待推送内容A时,业务服务器1向推送服务器发送消息,该消息中携带待推送内容A,并携带用户1在多个消息发送通道分别对应的用户标识,如用户1在旺旺通道对应的旺旺号1、用户1在邮件通道对应的邮箱地址1、用户1在短信通道对应的手机号码1、用户1在微信通道对应的微信号码1。推送服务器在收到来自业务服务器1的消息后,直接从来自业务服务器1的消息中获得待推送内容A,并直接从来自业务服务器1的消息中获得用户1在多个消息发送通道分别对应的用户标识,即用户1在旺旺通道对应的旺旺号1、用户1在邮件通道对应的邮箱地址1、用户1在短信通道对应的手机号码1、用户1在微信通道对应的微信号码1。
方式二、推送服务器在本地维护用户标识表项,该用户标识表项用于记录用户名与用户在多个消息发送通道分别对应的用户标识之间的对应关系。推送服务器接收来自业务服务器的携带了待推送内容和用户信息的消息,并从来自业务服务器的消息中获得待推送内容。在方式二下,该用户信息为用户名,因此,当用户信息为用户名时,推送服务器通过用户名查询本地维护的用户标识表项,以获得用户在多个消息发送通道分别对应的用户标识。
例如,推送服务器在本地维护的用户标识表项如表1所示。当业务服务器1需要向用户1发送待推送内容A时,业务服务器1向推送服务器发送消息,该消息中携带待推送内容A,并携带用户1的用户名(即用户名1)。推送服务器在收到来自业务服务器1的消息后,直接从来自业务服务器1的消息中获得待推送内容A。此外,推送服务器通过用户名1查询表1所示的用户标识表项,以获得用户1在多个消息发送通道分别对应的用户标识,即用户1在旺旺通道对应的旺旺号1、用户1在邮件通道对应的邮箱地址1、用户1在短信通道对应的手机号码1、用户1在微信通道对应的微信号码1。
表1
本申请实施例中,针对每个消息发送通道,推送服务器可以利用用户在消息发送通道对应的用户标识查询用户在该消息发送通道下是否处于登录状态。例如,以消息发送通道为旺旺通道、邮件通道、短信通道和微信通道为例。针对旺旺通道,推送服务器利用用户1在旺旺通道对应的旺旺号1查询用户1在旺旺通道下是否处于登录状态;针对邮件通道,推送服务器利用用户1在邮件通道对应的邮箱地址1查询用户1在邮件通道是否处于登录状态;针对短信通道,推送服务器利用用户1在短信通道对应的手机号码1查询用户1在短信通道是否处于登录状态;针对微信通道,推送服务器利用用户1在微信通道对应的微信号码1查询用户1在微信通道是否处于登录状态。
本申请实施例中,推送服务器利用用户在消息发送通道对应的用户标识查询用户在消息发送通道下是否处于登录状态的过程,具体包括但不限于如下方式:针对每个消息发送通道,推送服务器向消息发送通道对应的应用服务器发送携带了用户在该消息发送通道对应的用户标识的请求消息,由该应用服务器利用该用户标识查询用户在该消息发送通道下是否处于登录状态;之后,应用服务器向推送服务器返回携带了用户在该消息发送通道下处于登录状态或者未处于登录状态的响应消息;之后,推送服务器接收来自应用服务器的携带了用户在该消息发送通道下处于登录状态或者未处于登录状态的响应消息;之后,推送服务器通过该响应消息中携带的信息确定用户在该消息发送通道下处于登录状态或者用户在该消息发送通道下未处于登录状态。
例如,针对旺旺通道,推送服务器向旺旺通道对应的应用服务器(如旺旺服务器)发送携带了用户1在旺旺通道对应的旺旺号1的请求消息。旺旺服务器利用旺旺号1查询用户1在旺旺通道下是否处于登录状态,该查询用户1在旺旺通道下是否处于登录状态的方式在此不再赘述。旺旺服务器向推送服务器返回携带了用户1在旺旺通道下处于登录状态或者未处于登录状态的响应消息。推送服务器接收来自旺旺服务器的携带了用户1在旺旺通道下处于登录状态或者未处于登录状态的响应消息。推送服务器通过响应消息中携带的信息确定用户1在旺旺通道下处于登录状态或者用户1在旺旺通道下未处于登录状态,即确定用户1在旺旺通道下是否处于登录状态。
此外,针对邮件通道、短信通道和微信通道的处理过程,与上述旺旺通道的处理过程类似,只是相应的应用服务器不同,因此在此不再重复赘述。
本申请实施例中,如果用户在所有消息发送通道下均为未处于登录状态,则推送服务器利用预设选择策略从所有消息发送通道中选择一个消息发送通道,并利用该选择的一个消息发送通道发送携带待推送内容的消息,即推送服务器通过当前选择的一个消息发送通道将携带待推送内容的消息发送给相应的用户设备,由该用户设备将待推送内容显示给用户。进一步的,推送服务器利用预设第二选择策略从所有消息发送通道中选择一个消息发送通道的过程,具体包括但不限于如下方式:推送服务器获得每个消息发送通道在指定时间内的登录概率;如果最高的登录概率大于预设数值,则推送服务器从所有消息发送通道中选择登录概率最高的消息发送通道;如果最高的登录概率不大于预设数值,则推送服务器从所有消息发送通道中选择特定消息发送通道(如短信通道)。例如,如果用户在微信通道、旺旺通道、邮件通道、短信通道均为未处于登录状态,则推送服务器获得每个消息发送通道(即微信通道、旺旺通道、邮件通道、短信通道)在指定时间(如7天)内的登录概率;假设用户在最近7天内登录微信通道的概率为50%,在最近7天内登录旺旺通道的概率为40%,在最近7天内登录邮件通道的概率为30%,在最近7天内登录短信通道的概率为30%。假设预设数值为40%,则最高的登录概率(即50%)大于预设数值(如40%),此时推送服务器从所有消息发送通道中选择登录概率最高的消息发送通道(即微信通道);之后,推送服务器通过微信通道发送携带待推送内容A的消息,即推送服务器通过微信通道将携带待推送内容A的消息发送给微信号码1当前所在的移动终端,由移动终端将待推送内容A显示给用户。假设预设数值为50%,则最高的登录概率(即50%)不大于预设数值(如50%),此时推送服务器从所有消息发送通道中选择特定消息发送通道(如短信通道);之后,推送服务器通过短信通道发送携带待推送内容A的消息,即推送服务器通过短信通道将携带待推送内容A的消息发送给手机号码1当前所在的移动终端,移动终端将待推送内容A显示给用户。
在上述处理过程中,推送服务器利用预设第二选择策略从所有消息发送通道中选择一个消息发送通道时,是基于消息发送通道在指定时间内的登录概率实现的,当然,在实际应用中并不局限于登录概率,如还可以基于消息发送通道对应的打开推送消息的次数等,本申请实施例中对此不再赘述。
本申请实施例中,如果用户只在一个消息发送通道下处于登录状态,则推送服务器通过消息发送通道(即唯一的一个处于登录状态的消息发送通道)发送携带待推送内容的消息,即推送服务器通过消息发送通道将携带待推送内容的消息发送给相应的用户设备,由用户设备显示给用户。例如,如果用户在微信通道处于登录状态,在旺旺通道、邮件通道、短信通道均为未处于登录状态,则推送服务器通过微信通道发送携带待推送内容A的消息,即推送服务器通过微信通道将携带待推送内容A的消息发送给微信号码1当前所在的移动终端,由移动终端将待推送内容A显示给用户。
本申请实施例中,如果用户在多个消息发送通道下处于登录状态,则推送服务器利用预设选择策略(该预设选择策略可以根据经验任意设置,如设置预设选择策略为成本最低策略)从多个消息发送通道(即当前处于登录状态的多个消息发送通道)中选择一个消息发送通道,并利用该选择的一个消息发送通道发送携带待推送内容的消息,即推送服务器通过当前选择的一个消息发送通道(处于登录状态的消息发送通道)将携带待推送内容的消息发送给相应的用户设备,由用户设备显示给用户。例如,如果用户在微信通道、旺旺通道、邮件通道、短信通道均为处于登录状态,则推送服务器从微信通道、旺旺通道、邮件通道、短信通道中选择一个成本最低的消息发送通道,假设邮件通道为成本最低的消息发送通道,则推送服务器选择邮件通道,并通过邮件通道发送携带待推送内容A的消息,即推送服务器通过邮件通道将携带待推送内容A的消息发送给邮件地址1当前所在的用户设备(如PC),由该用户设备将待推送内容A显示给用户。
本申请实施例中,推送服务器还可以生成各应用服务器分别对应的消息模板,并将各应用服务器分别对应的消息模板分别发送给各应用服务器。进一步的,在推送服务器通过消息发送通道发送携带了待推送内容的消息的过程中,在通过消息发送通道发送携带待推送内容的消息时,该推送服务器需要将待推送内容发送给消息发送通道对应的应用服务器,之后由该应用服务器利用消息模板以及待推送内容生成消息,并发送携带了待推送内容的消息。
例如,推送服务器生成微信通道对应的应用服务器的消息模板1,并将消息模板1发送给微信通道对应的应用服务器;推送服务器生成旺旺通道对应的应用服务器的消息模板2,并将消息模板2发送给旺旺通道对应的应用服务器;推送服务器生成邮件通道对应的应用服务器的消息模板3,并将消息模板3发送给邮件通道对应的应用服务器;推送服务器生成短信通道对应的应用服务器的消息模板4,并将消息模板4发送给短信通道对应的应用服务器。
假设推送服务器需要通过微信通道发送携带待推送内容A的消息,则推送服务器将待推送内容A发送给微信通道对应的应用服务器,由微信通道对应的应用服务器利用消息模板1以及待推送内容A生成消息,并发送该消息。假设推送服务器需要通过旺旺通道发送携带待推送内容A的消息,则推送服务器将待推送内容A发送给旺旺通道对应的应用服务器,由旺旺通道对应的应用服务器利用消息模板2以及待推送内容A生成消息,并发送该消息。
综上所述,本申请实施例中,能够通过登录概率最高的消息发送通道(如微信通道、旺旺通道、邮件通道、短信通道等)向用户设备发送携带待推送内容的消息,从而尽量将待推送内容通知给用户,提高将待推送内容通知到用户的概率,并且可以避免造成***资源和网络资源的浪费,节省***资源和网络资源,并且可以避免对用户造成骚扰,从而提高用户的使用感受。
实施例二
基于与上述方法同样的申请构思,本申请实施例中还提供了一种推送服务器,如图3所示,所述推送服务器具体包括:
获得模块11,用于获得待推送内容;
确定模块12,用于针对多个消息发送通道,获得每个消息发送通道在指定时间内的登录概率,并确定登录概率最高的消息发送通道;
发送模块13,用于利用所述登录概率最高的消息发送通道发送携带了所述待推送内容的消息。
所述获得模块11,具体用于在需要向用户发送待推送内容时,接收来自业务服务器的携带了待推送内容的消息,从所述消息中获得所述待推送内容。
所述发送模块13,进一步用于判断最高的登录概率是否大于预设数值;
如果是,则执行利用所述登录概率最高的消息发送通道发送携带了所述待推送内容的消息的过程;如果否,则确定特定消息发送通道,并利用所述特定消息发送通道发送携带了所述待推送内容的消息。
所述获得模块11,还用于在需要向用户发送待推送内容时,获得所述用户在多个消息发送通道分别对应的用户标识;所述确定模块12,还用于针对每个消息发送通道,利用所述用户在消息发送通道对应的用户标识查询用户在所述消息发送通道下是否处于登录状态;所述发送模块13,进一步用于如果所述用户在所有消息发送通道下均为未处于登录状态,则执行获得每个消息发送通道在指定时间内的登录概率,利用登录概率最高的消息发送通道发送携带了所述待推送内容的消息的过程。
所述发送模块13,还用于如果所述用户只在一个消息发送通道下处于登录状态,则通过该一个消息发送通道发送携带了所述待推送内容的消息;
如果所述用户在多个消息发送通道下处于登录状态,则利用预设选择策略从所述多个消息发送通道中选择一个消息发送通道,并利用该选择的一个消息发送通道发送携带了所述待推送内容的消息。
所述获得模块11,具体用于接收来自业务服务器的携带了用户信息的消息;当所述用户信息为用户在多个消息发送通道分别对应的用户标识时,从来自所述业务服务器的消息中获得所述用户在多个消息发送通道分别对应的用户标识;或者,当所述用户信息为用户名时,通过所述用户名查询所述推送服务器本地维护的用户标识表项,以获得所述用户在多个消息发送通道分别对应的用户标识;其中,所述用户标识表项用于记录用户名与用户在多个消息发送通道分别对应的用户标识之间的对应关系。
所述确定模块12,具体用于向消息发送通道对应的应用服务器发送携带了用户在所述消息发送通道对应的用户标识的请求消息,由所述应用服务器利用所述用户标识查询所述用户在所述消息发送通道下是否处于登录状态;
接收来自所述应用服务器的携带了所述用户在所述消息发送通道下处于登录状态或者未处于登录状态的响应消息;
通过所述响应消息中携带的信息确定所述用户在所述消息发送通道下处于登录状态或者在所述消息发送通道下未处于登录状态。
所述发送模块13,进一步用于生成各应用服务器分别对应的消息模板,并将各应用服务器分别对应的消息模板分别发送给所述各应用服务器;
在通过消息发送通道发送携带所述待推送内容的消息时,将所述待推送内容发送给所述消息发送通道对应的应用服务器,由所述应用服务器利用消息模板和所述待推送内容生成消息,并发送所述消息。
其中,本申请装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。以上公开的仅为本申请的几个具体实施例,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。