CN110855792B - 一种消息推送方法、装置、设备及介质 - Google Patents

一种消息推送方法、装置、设备及介质 Download PDF

Info

Publication number
CN110855792B
CN110855792B CN201911132921.2A CN201911132921A CN110855792B CN 110855792 B CN110855792 B CN 110855792B CN 201911132921 A CN201911132921 A CN 201911132921A CN 110855792 B CN110855792 B CN 110855792B
Authority
CN
China
Prior art keywords
client
channel
message
sending
push message
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.)
Active
Application number
CN201911132921.2A
Other languages
English (en)
Other versions
CN110855792A (zh
Inventor
王子榕
高小勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Leading Technology Co Ltd
Original Assignee
Nanjing Leading Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing Leading Technology Co Ltd filed Critical Nanjing Leading Technology Co Ltd
Priority to CN201911132921.2A priority Critical patent/CN110855792B/zh
Publication of CN110855792A publication Critical patent/CN110855792A/zh
Application granted granted Critical
Publication of CN110855792B publication Critical patent/CN110855792B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols

Abstract

本发明关于一种消息推送方法、装置、设备及介质,用以提高消息推送效率,提升消息必达性和实时性。所述方法包括:接收待推送至至少一个客户端的推送消息,所述推送消息中包含用于指示所述推送消息发送方式的发送策略;针对每个客户端,在确定向该客户端发送推送消息的指定通道故障时,依据所述发送策略,在预先建立的用于与该客户端通信的多个通道中重新选择目标通道,并通过所述目标通道向该客户端发送所述推送消息,其中,所述多个通道使用不同的传输协议传输消息。

Description

一种消息推送方法、装置、设备及介质
技术领域
本发明涉及消息推送领域,尤其涉及一种消息推送方法、装置、设备及介质。
背景技术
传统的消息推送方法可分为如下几类方案,第一类消息推送方案中,通常由设备端(客户端)主动向服务端(服务器)请求数据,服务端被动的提供数据,导致后台新消息不会主动推送至设备端,例如若设备端主动轮询获取新的消息,设备端定期主动向后台服务端请求消息,消耗设备端的电量以及网络数据传输流量并且实时性较差。
第二类消息推送方案中,服务端主动向设备端推送消息,设备端和服务端一直维持一条通信通道,两端不定期发送心跳包,保持通信链路畅通。此方案为使用较多,但还存在服务端链路的集群问题、服务端可伸缩性问题,以及服务端高可用性差的问题。
第三类消息推送方案中,采用无状态模式,只保证消息推送,但无法保证设备是否接收。
上述三类在网约车应用场景中,使用这样的消息推送方法对于消息实时性和必达性要求高的业务造成巨大缺陷,并且无法应对设备端与服务端之间消息推送过程出现故障的情况。
发明内容
本发明提供一种消息推送方法、装置、设备及介质,用以提高消息推送效率,提升消息必达性和实时性。
本发明的技术方案如下:
根据本发明实施例的第一方面,提供一种消息推送方法,包括:
接收待推送至至少一个客户端的推送消息,推送消息中包含用于指示推送消息发送方式的发送策略;
针对每个客户端,在确定向该客户端发送推送消息的指定通道故障时,依据发送策略,在预先建立的用于与该客户端通信的多个通道中重新选择目标通道,并通过目标通道向该客户端发送推送消息,其中,多个通道使用不同的传输协议传输消息。
一种可能的实施方式中,本发明实施例提供的上述方法中,发送策略为以下策略中的任意一种:
策略一,在预先建立的用于与该客户端通信的多个通道中选择一个处于正常状态的通道作为目标通道;
策略二,在预先建立的用于与该客户端通信的多个通道中选择至少两个通道作为目标通道。
一种可能的实施方式中,本发明实施例提供的上述方法中,传输协议包括传输控制协议/网际协议TCP/IP协议、消息队列遥测传输MQTT协议、短信协议、以及第三方协议中的任意两种或多种。
一种可能的实施方式中,本发明实施例提供的上述方法中,发送策略为在预先建立的用于与该客户端通信的多个通道中选择一个处于正常状态的通道作为目标通道时,在预先建立的用于与该客户端通信的多个通道中重新选择目标通道,包括:
根据预先设置的多个通道的优先级,在预先建立的用于与该客户端通信的多个通道中,选择优先级最高的处于正常状态的通道作为目标通道,其中,预先设置的多个通道的优先级中,使用TCP/IP协议传输消息的通道的优先级大于使用MQTT协议传输消息的通道的优先级,使用MQTT协议传输消息的通道的优先级大于使用短信协议传输消息的通道的优先级,使用短信协议传输消息的通道的优先级大于使用第三方协议传输消息的通道的优先级。
一种可能的实施方式中,本发明实施例提供的上述方法中,发送策略为在预先建立的用于与该客户端通信的多个通道中选择一个处于正常状态的通道作为目标通道时,通过目标通道向该客户端发送推送消息之后,方法还包括:
将目标通道更新为向该客户端发送推送消息的指定通道。
一种可能的实施方式中,本发明实施例提供的上述方法中,发送策略为在预先建立的用于与该客户端通信的多个通道中选择至少两个通道作为目标通道时,通过目标通道向该客户端发送推送消息之后,方法还包括:
根据预先设置的多个通道的优先级,将目标通道中优先级最高的通道更新为向该客户端发送推送消息的指定通道;或者
在目标通道中随机选择一个通道,并将选择的通道更新为向该客户端发送推送消息的指定通道。
一种可能的实施方式中,本发明实施例提供的上述方法中,方法还包括:
接收客户端发送的用于表征接收到推送消息的响应消息。
一种可能的实施方式中,本发明实施例提供的上述方法中,方法还包括:
将接收到响应消息的通道更新为向该客户端发送推送消息的指定通道。
根据本发明实施例的第二方面,提供一种消息推送装置,包括:
第一接收单元,用于接收待推送至至少一个客户端的推送消息,推送消息中包含用于指示推送消息发送方式的发送策略;
处理单元,用于针对每个客户端,在确定向该客户端发送推送消息的指定通道故障时,依据发送策略,在预先建立的用于与该客户端通信的多个通道中重新选择目标通道,并通过目标通道向该客户端发送推送消息,其中,多个通道使用不同的传输协议传输消息。
一种可能的实施方式中,本发明实施例提供的上述装置中,发送策略为以下策略中的任意一种:
策略一,在预先建立的用于与该客户端通信的多个通道中选择一个处于正常状态的通道作为目标通道;
策略二,在预先建立的用于与该客户端通信的多个通道中选择至少两个通道作为目标通道。
一种可能的实施方式中,本发明实施例提供的上述装置中,传输协议包括传输控制协议/网际协议TCP/IP协议、消息队列遥测传输MQTT协议、短信协议、以及第三方协议中的任意两种或多种。
一种可能的实施方式中,本发明实施例提供的上述装置中,处理单元具体用于:
发送策略为在预先建立的用于与该客户端通信的多个通道中选择一个处于正常状态的通道作为目标通道时,根据预先设置的多个通道的优先级,在预先建立的用于与该客户端通信的多个通道中,选择优先级最高的处于正常状态的通道作为目标通道,其中,预先设置的多个通道的优先级中,使用TCP/IP协议传输消息的通道的优先级大于使用MQTT协议传输消息的通道的优先级,使用MQTT协议传输消息的通道的优先级大于使用短信协议传输消息的通道的优先级,使用短信协议传输消息的通道的优先级大于使用第三方协议传输消息的通道的优先级。
一种可能的实施方式中,本发明实施例提供的上述装置中,处理单元还用于:
在发送策略为在预先建立的用于与该客户端通信的多个通道中选择一个处于正常状态的通道作为目标通道时,通过目标通道向该客户端发送推送消息之后,将目标通道更新为向该客户端发送推送消息的指定通道。
一种可能的实施方式中,本发明实施例提供的上述装置中,处理单元还用于:
在发送策略为在预先建立的用于与该客户端通信的多个通道中选择至少两个通道作为目标通道时,通过目标通道向该客户端发送推送消息之后,根据预先设置的多个通道的优先级,将目标通道中优先级最高的通道更新为向该客户端发送推送消息的指定通道;或者
在目标通道中随机选择一个通道,并将选择的通道更新为向该客户端发送推送消息的指定通道。
一种可能的实施方式中,本发明实施例提供的上述装置中,装置还包括:
第二接收单元,用于接收客户端发送的用于表征接收到推送消息的响应消息。
一种可能的实施方式中,本发明实施例提供的上述装置中,处理单元还用于:
将接收到响应消息的通道更新为向该客户端发送推送消息的指定通道。
根据本发明实施例的第三方面,提供一种消息推送设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,处理器被配置为执行指令,以实现第一方面中任一项消息推送方法。
根据本发明实施例的第四方面,提供一种存储介质,当存储介质中的指令由消息推送设备的执行器执行时,使得消息推送设备能够执行第一方面中任一项消息推送方法。
本发明的实施例提供的技术方案至少带来以下有益效果:
接收待推送至至少一个客户端的推送消息,推送消息中包含用于指示推送消息发送方式的发送策略,针对每个客户端,在确定向该客户端发送推送消息的指定通道故障时,依据发送策略,在预先建立的用于与该客户端通信的多个通道中重新选择目标通道,并通过目标通道向该客户端发送推送消息,其中,多个通道使用不同的传输协议传输消息。实现消息推送消息服务器与客户端之间通信交互的通道故障时,直接依据发送策略重新选择推送消息服务器与客户端之间通信通道,使推送消息能够通过使用与故障通道不同的传输协议通道,传输消息,使推送消息被推送至客户端,提高推送消息效率,提升推送消息必达性和实时性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理,并不构成对本发明的不当限定。
图1是根据一示例性实施例示出的一种消息推送方法的流程图。
图2是根据一示例性实施例示出的应用消息推送方法的系统功能模块结构图。
图3是根据一示例性实施例示出的另一种消息推送方法的流程图。
图4是根据一示例性实施例示出的一种消息推送装置结构示意图。
图5是根据一示例性实施例示出的一种消息推送装置设备结构框图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例中术语“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本发明实施例描述的应用场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着新应用场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。其中,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
图1根据一示例性示出的消息推送方法的示意流程图。如图1所示,本实施例提供的消息推送方法,可以包括以下步骤:
步骤S101,接收待推送至至少一个客户端的推送消息,推送消息中包含用于指示推送消息发送方式的发送策略。
具体实施时,消息推送消息服务器可以是子节点服务器或broker服务器,用于向客户端推送消息,消息推送消息服务器可以接收来自推送应用客户端的推送消息,也可接收来自其他服务器的推送消息,并将推送消息推送至少一个客户端,其中推送消息中包括用于指示推送消息发送方式的发送策略,本领域技术人员应当知晓推送消息中包含被推送给客户端的数据。
在实际应用场景中,例如网约车场景,客户端可以是接单设备,也可以是下单设备。
步骤S102,针对每个客户端,在确定向该客户端发送推送消息的指定通道故障时,依据发送策略,在预先建立的用于与该客户端通信的多个通道中重新选择目标通道,并通过目标通道向该客户端发送推送消息。
具体实施时,在消息推送消息服务器中可以存储有客户端与向客户端发送推送消息的指定通道的对应关系,也可以接收其他服务器中存储的客户端与向客户端发送推送消息的指定通道的对应关系,消息推送消息服务器确定向客户端发送推送消息的指定通道故障时,根据推送消息中的发送策略,在预先建立的与客户端通信的多个通道中重新选择通道,通过选择的通道向客户端发送推送消息。不同的客户端的预先建立的与客户端通信的多个通道可以不同,也可以相同,例如,客户端1的预先建立与客户端1的多个通道可以是通道1、通道2,客户端2的预先建立与客户端2的多个通道可以是通道2、通道3、通道4,客户端3的预先建立与客户端3的多个通道可以是通道1、通道2。不同推送消息的发送策略可以不同,也可以相同,例如,推送消息1的发送策略为策略1,推送消息2的发送策略为策略2,推送消息3的发送策略为策略3。
在实际应用场景中,消息推送消息服务器向客户端推送消息的通道在传输消息时使用的传输协议可以是传输控制协议/网际(Transmission Control Protocol/InternetProtocol,TCP/IP)协议、消息队列遥测传输(Message Queuing Telemetry Transport,MQTT)协议、短信协议、以及第三方协议中的任意两种或多种。
发送策略可以为一下策略中的任一种:
策略一,在预先建立的用于与该客户端通信的多个通道中选择一个处于正常状态的通道作为目标通道;
策略二,在预先建立的用于与该客户端通信的多个通道中选择至少两个通道作为目标通道。
具体实施时,发送策略为策略一时,推送消息服务器可以根据预设的多个通道的优先级,依次检测预先建立的用于与该客户端通信的多个通道是否处于正常状态,将首个检测出的处于正常状态的通道确定为选择的通道,并通过选择的通道向该客户端发送推送消息,使指定通道故障时,推送消息仍能实时地发送给客户端,提高推送消息的推送效率,并提升推送消息的实时性和必达性。
一种可能的实施方式中,还可以根据预先设置的多个通道的优先级,在预先建立的用于与该客户端通信的多个通道中,选择优先级最高的处于正常状态的通道作为目标通道,其中,所述预先设置的多个通道的优先级中,使用TCP/IP协议传输消息的通道的优先级大于使用MQTT协议传输消息的通道的优先级,使用MQTT协议传输消息的通道的优先级大于使用短信协议传输消息的通道的优先级,使用短信协议传输消息的通道的优先级大于使用第三方协议传输消息的通道的优先级。
具体实施时,根据预设的通道优先级,优先确定优先级高的通道是否处于正常状态,若处于正常状态,选择其为目标通道,若不处于正常状态,继续确定下一个优先级的通道是否处于正常状态。
还可以根据通道的传输效率或性能等方面,为通道设置不同的优先级,例如,使用TCP/IP协议传输消息的通道的优先级大于使用MQTT协议传输消息的通道的优先级,使用MQTT协议传输消息的通道的优先级大于使用短信协议传输消息的通道的优先级,使用短信协议传输消息的通道的优先级大于使用第三方协议传输消息的通道的优先级,本发明实施中上述优先级顺序仅做举例说明,本发明实施对此不做限定。
发送策略为策略二时,推送消息服务器可以在多个通道中随机选择两个或两个以上的通道,将推送消息通过选择的多个通道发送,还可以在多个通道中选择使用频次最高的两个或两个以上的通道,发送推送消息,还可以在多个通道中选择预设时间内使用过的两个或两个以上的通道,发送推送消息。
一种可能的实施方式中,发送策略为在预先建立的用于与该客户端通信的多个通道中选择一个处于正常状态的通道作为目标通道时,通过目标通道向该客户端发送推送消息之后,将目标通道更新为向该客户端发送推送消息的指定通道。
具体实施时,消息推送消息服务器可以在存储有客户端与向客户端发送推送消息的指定通道的对应关系中,更新指定通道为目标通道,目标通道是根据发送策略确定出的一个正常状态的通道。
一种可能的实施方式中,发送策略为在预先建立的用于与该客户端通信的多个通道中选择至少两个通道作为目标通道时,通过目标通道向该客户端发送推送消息之后,根据预先设置的多个通道的优先级,将目标通道中优先级最高的通道更新为向该客户端发送推送消息的指定通道;或者
在目标通道中随机选择一个通道,并将选择的通道更新为向该客户端发送推送消息的指定通道。
具体实施时,消息推送消息服务器根据发送策略,通过至少两个通道向客户端发送推送消息时,可以将实际向客户端发送推送消息的通道中预设的优先级最高的通道,在存储有客户端与向客户端发送推送消息的指定通道的对应关系中,更新该客户端的指定通道,还可以随机在实际向客户端发送推送消息的通道中选择一个通道,在存储有客户端与向客户端发送推送消息的指定通道的对应关系中,更新该客户端的指定通道,由多个通道向客户端发送推送消息,提高推送消息的推送效率,并极大提高推送消息的必达性。
一种可能的实施方式中,接收客户端发送的用于表征接收到推送消息的响应消息。
具体实施时,推送消息服务器可以接收客户端的响应消息,确定客户端成功接收到推送消息,也可以将该响应消息转发给推送消息的提供方,例如推送应用客户端,或者其他服务器。
一种可能的方式中,将接收到响应消息的通道更新为向该客户端发送推送消息的指定通道。
具体实施时,推送消息服务器可以接收响应消息的通道确定为目标通道,并在存储有客户端与向客户端发送推送消息的指定通道的对应关系中,将目标通道更新为该客户端的对应的指定通道。
为了提升推送消息服务器所在系统的系统性能,可以将更新后的存储有客户端与向客户端发送推送消息的指定通道的对应关系,发送给其他服务器,例如其他推送消息服务器,当推送消息服务器发成故障时,系统可以分配给其他推送消息服务器根据更新后的存储有客户端与向客户端发送推送消息的指定通道的对应关系,执行推送消息任务,避免推送消息服务器所在系统因推送消息服务器宕机或服务不可用时,无法给该推送消息服务器连接的客户端发送推送消息的问题,实现服务器出现故障时,推送消息任务转移,保障推送消息任务正常执行。
在实际应用场景中,判断推送消息服务器与客户端之间的通道是否出现故障,可以通过心跳机制,进行检测通道链路是否正常,可以根据客户端属性,在指定时间内设置心跳频率和连接时长,用于判断通道链路是否正常,节约客户端的电量消耗、以及网络数据流量消耗若客户端通过多个通道收到推送消息,可由客户端对重复的推送消息做幂等处理。
上述实施例中的推送消息服务器所在系统中,可以动态增加或减少推送服务器的数量,多个推送消息服务器对外暴露一个接口,由接口统一管理,能够实现系统动态扩容,不影响各推送服务器正常工作,当增加或减少推送服务器时,动态更新存储的客户端与向客户端发送推送消息的指定通道的对应关系。
一种可能的实施方式中,存储的客户端与向客户端发送推送消息的指定通道的对应关系中,还可以包括推送消息与推送消息服务器的对应关系,例如,客户端1-推送消息5-推送消息服务器3-通道2。
图2根据一示例性示出应用上述实施例中的消息推送方法的系统的功能模块结构图。如图2所示,本实施例提供的消息推送系统,可以包括以下模块:
存储功能模块201:可以存储配置、消息和链路关系。消息存储数据库可以使用关系型数据库或非关系型数据库,存储功能对外暴露统一接口,且可以替换底层数据存储系统,或与底层数据存储系统共存,以使不同数据存储在不同的存储系统中。存储功能能够适应推送数据量和系统可扩展性。
基础服务功能模块202:提供消息服务相关的基础接口,也可使其他应用通过接口对主要功能(存储、推送、缓存等)进行实现与扩展。
应用推送接口服务功能模块203:为提供给推送消息的应用使用的接口和相关服务,应用通过调用推送接口,将需要推送的消息推送至该接口服务,服务经过鉴权(鉴权主要用于鉴定是否允许指定应用进行消息推送,同时推送能使用的通信通道),选择推送车辆信息等处理,之后将消息推送至接单车辆。
应用功能模块205:将多种推送渠道进行整合,选择最优的通信通道进行推送,根据通道选择策略,可以同时通过多个通道进行推送。推送后,等待客户端的确认。同时系统可以为推送制定不同的推送策略。
消息推送服务功能模块204:采用路由表策略,将接单设备(指客户端设备)的连接通道与路由表建立管理。通过路由表对可以定位到指定的通道,同时如果某个服务节点(指通信服务器,通信通道是由多台通信服务器组成)出现故障,接单设备进行重连,重连时,系统会对连接路由到没有问题的服务节点进行链路的重新建立。
图3根据一示例性示出的消息推送方法的示意流程图,结合推送应用客户端、推送服务器、接收推送信息客户端,如图3所示,消息推送方法包括以下步骤:
步骤S301,发送推送消息,推送消息中包含消息类型标识。
具体实施时,推送应用客户端将需要发送给目标客户端的推送消息发送给服务器(多个服务对外暴露的统一接口),推送消息携带有推送消息的消息类型标识,消息类型标识可以表示该推送消息为群发消息,或者给目标客户端的推送消息。
步骤S302,根据接收推送消息携带的消息类型标识,以及预先存储的客户端与向客户端发送推送消息的指定通道的对应关系,确定推送消息的发送策略。
具体实施时,服务器为根据接收推送消息携带的消息类型标识,为推送消息确定一个发送策略,根据消息类型标识可以是推送应用客户端注册时与服务器约定的消息类型标识,服务器接收到没有注册过的消息类型标识,可以拒绝处理该推送消息。
步骤S303,确定预先存储的客户端与向客户端发送推送消息的指定通道的对应关系中,向目标客户端发送推送消息对应的指定通道发生故障时,将推送消息放入延迟队列中,并经过预设延迟时间,移入发送队列。
具体实施时,目标客户端发送推送消息对应的指定通道发生故障时,服务器可以暂时不立即将推送消息发送给推送消息服务器,放入延迟队列中,缓解推送消息服务器的负载,经过预设延迟时间后,将推送消息移入发送队列,发送给推送消息服务器。
步骤S304,发送推送消息,推送消息中包含发送策略。
具体实施时,服务器向消息推送服务器发送的推送消息中携带有发送策略。
步骤S305,根据发送策略,重新选择通道。
具体实施时,推送消息服务器根据推送消息中携带的发送策略,重新选择通道,也可以优先选择使用TCP/IP协议传输消息的通道。
步骤S306,通过重新选择通道,发送推送消息。
具体实施时,推送消息服务器通过重新选择的通道,向目标客户端发送推送消息。
步骤S307,更新存储的客户端与向客户端发送推送消息的指定通道的对应关系中的向目标客户端发送推送消息的指定通道。
具体实施时,将重新选择的向目标客户端发送推送消息的通道,在存储的客户端与向客户端发送推送消息的指定通道的对应关系中,进行更新,其中,存储的客户端与向客户端发送推送消息的指定通道的对应关系,可以是路由表,也可以是通信链路表。
步骤S308,发送更新后的客户端与向客户端发送推送消息的指定通道的对应关系。
具体实施时,推送消息服务器将更新后的客户端与向客户端发送推送消息的指定通道的对应关系,发送至服务器,使服务器存有客户端与向客户端发送推送消息的指定通道的对应关系,服务器还可将接收的客户端与向客户端发送推送消息的指定通道的对应关系,发送至其他推送消息服务器。
步骤S308,接收响应消息。
具体实施时,推送消息服务器接收客户端发送的响应信息,响应信息用于表征客户端接收到推送消息。
推送消息服务器还可以将接收到的响应信息,通过服务器转发至推送应用客户端,使推送应用客户端确定推送消息被目标客户端接收。
基于相同的发明构思,如图4所示,本发明实施例还提供一种消息推送装置,包括:
第一接收单元401,用于接收待推送至至少一个客户端的推送消息,推送消息中包含用于指示推送消息发送方式的发送策略;
处理单元402,用于针对每个客户端,在确定向该客户端发送推送消息的指定通道故障时,依据发送策略,在预先建立的用于与该客户端通信的多个通道中重新选择目标通道,并通过目标通道向该客户端发送推送消息,其中,多个通道使用不同的传输协议传输消息。
一种可能的实施方式中,本发明实施例提供的消息推送装置中,发送策略为以下策略中的任意一种:
策略一,在预先建立的用于与该客户端通信的多个通道中选择一个处于正常状态的通道作为目标通道;
策略二,在预先建立的用于与该客户端通信的多个通道中选择至少两个通道作为目标通道。
一种可能的实施方式中,本发明实施例提供的消息推送装置中,传输协议包括传输控制协议/网际协议TCP/IP协议、消息队列遥测传输MQTT协议、短信协议、以及第三方协议中的任意两种或多种。
一种可能的实施方式中,本发明实施例提供的消息推送装置中,处理单元402具体用于:
发送策略为在预先建立的用于与该客户端通信的多个通道中选择一个处于正常状态的通道作为目标通道时,根据预先设置的多个通道的优先级,在预先建立的用于与该客户端通信的多个通道中,选择优先级最高的处于正常状态的通道作为目标通道,其中,预先设置的多个通道的优先级中,使用TCP/IP协议传输消息的通道的优先级大于使用MQTT协议传输消息的通道的优先级,使用MQTT协议传输消息的通道的优先级大于使用短信协议传输消息的通道的优先级,使用短信协议传输消息的通道的优先级大于使用第三方协议传输消息的通道的优先级。
一种可能的实施方式中,本发明实施例提供的消息推送装置中,处理单元402还用于:
在发送策略为在预先建立的用于与该客户端通信的多个通道中选择一个处于正常状态的通道作为目标通道时,通过目标通道向该客户端发送推送消息之后,将目标通道更新为向该客户端发送推送消息的指定通道。
一种可能的实施方式中,本发明实施例提供的消息推送装置中,处理单元402还用于:
在发送策略为在预先建立的用于与该客户端通信的多个通道中选择至少两个通道作为目标通道时,通过目标通道向该客户端发送推送消息之后,根据预先设置的多个通道的优先级,将目标通道中优先级最高的通道更新为向该客户端发送推送消息的指定通道;或者
在目标通道中随机选择一个通道,并将选择的通道更新为向该客户端发送推送消息的指定通道。
一种可能的实施方式中,本发明实施例提供的消息推送装置,还包括:
第二接收单元403,用于接收客户端发送的用于表征接收到推送消息的响应消息。
一种可能的实施方式中,本发明实施例提供的消息推送装置中,处理单元402还用于:
将接收到响应消息的通道更新为向该客户端发送推送消息的指定通道。
另外,结合图1、3、4所描述的本发明实施例的消息推送方法及装置可以由消息推送设备来实现。图5示出了本发明实施例提供的消息推送设备结构示意图。
该消息推送设备可以包括处理器501以及存储有计算机程序指令的存储器502。
具体地,上述处理器501可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本发明实施例的一个或多个集成电路。
存储器502可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器502可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器502可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器502可在数据处理装置的内部或外部。在特定实施例中,存储器502是非易失性固态存储器。在特定实施例中,存储器502包括只读存储器(ROM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或者两个或更多个以上这些的组合。
处理器501通过读取并执行存储器502中存储的计算机程序指令,以实现上述实施例中的消息推送方法。
在一个示例中,该消息推送设备还可包括通信接口503和总线510。其中,如图5所示,处理器501、存储器502、通信接口503通过总线510连接并完成相互间的通信。
通信接口503,主要用于实现本发明实施例中各模块、装置、单元和/或设备之间的通信。
总线510包括硬件、软件或两者,将该消息推送设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(AGP)或其它图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其它合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线510可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。
另外,结合上述实施例中的消息推送方法,本发明实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一项消息推送方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (16)

1.一种消息推送方法,其特征在于,应用于推送消息服务器,所述方法包括:
接收待推送至至少一个客户端的推送消息,所述推送消息中包含用于指示所述推送消息发送方式的发送策略;
针对每个客户端,在确定向该客户端发送推送消息的指定通道故障时,依据所述发送策略,在预先建立的用于与该客户端通信的多个通道中重新选择目标通道,并通过所述目标通道向该客户端发送所述推送消息,其中,所述多个通道使用不同的传输协议传输消息;其中,所述发送策略为在预先建立的用于与该客户端通信的多个通道中选择一个处于正常状态的通道作为目标通道;
其中,所述推送消息是推送应用客户端通过服务器发送给推送消息服务器的;所述推送应用客户端发送的推送消息中包含消息类型标识;所述服务器是根据接收推送消息携带的消息类型标识,以及预先存储的客户端与向客户端发送推送消息的指定通道的对应关系,确定推送消息的发送策略,并在所述向该客户端发送推送消息的指定通道故障时,放入延迟队列中,并经过预设延迟时间后,将推送消息移入发送队列发送的;
其中,存储有客户端与向客户端发送推送消息的指定通道的对应关系;并且该对应关系中包括推送消息与推送消息服务器的对应关系;
将所述目标通道更新为向该客户端发送推送消息的指定通道,并向其他推送消息服务器发送更新后的客户端与向客户端发送推送消息的指定通道的对应关系,以在所述推送消息服务器故障后,采用其他推送消息服务器根据更新后的存储有客户端与向客户端发送推送消息的指定通道的对应关系,执行推送消息任务。
2.根据权利要求1所述的方法,其特征在于,所述发送策略为在预先建立的用于与该客户端通信的多个通道中选择至少两个通道作为目标通道。
3.根据权利要求1所述的方法,其特征在于,所述传输协议包括传输控制协议/网际协议TCP/IP协议、消息队列遥测传输MQTT协议、短信协议、以及第三方协议中的任意两种或多种。
4.根据权利要求3所述的方法,其特征在于,所述发送策略为在预先建立的用于与该客户端通信的多个通道中选择一个处于正常状态的通道作为目标通道时,所述在预先建立的用于与该客户端通信的多个通道中重新选择目标通道,包括:
根据预先设置的多个通道的优先级,在预先建立的用于与该客户端通信的多个通道中,选择优先级最高的处于正常状态的通道作为目标通道,其中,所述预先设置的多个通道的优先级中,使用TCP/IP协议传输消息的通道的优先级大于使用MQTT协议传输消息的通道的优先级,使用MQTT协议传输消息的通道的优先级大于使用短信协议传输消息的通道的优先级,使用短信协议传输消息的通道的优先级大于使用第三方协议传输消息的通道的优先级。
5.根据权利要求1所述的方法,其特征在于,所述发送策略为在预先建立的用于与该客户端通信的多个通道中选择至少两个通道作为目标通道时,所述通过所述目标通道向该客户端发送所述推送消息之后,所述方法还包括:
根据预先设置的多个通道的优先级,将所述目标通道中优先级最高的通道更新为向该客户端发送推送消息的指定通道;或者
在所述目标通道中随机选择一个通道,并将选择的通道更新为向该客户端发送推送消息的指定通道。
6.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
接收所述客户端发送的用于表征接收到所述推送消息的响应消息。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
将接收到所述响应消息的通道更新为向该客户端发送推送消息的指定通道。
8.一种消息推送装置,其特征在于,所述装置包括:
第一接收单元,用于接收待推送至至少一个客户端的推送消息,所述推送消息中包含用于指示所述推送消息发送方式的发送策略;
处理单元,用于针对每个客户端,在确定向该客户端发送推送消息的指定通道故障时,依据所述发送策略,在预先建立的用于与该客户端通信的多个通道中重新选择目标通道,并通过所述目标通道向该客户端发送所述推送消息,其中,所述多个通道使用不同的传输协议传输消息;其中,所述发送策略为在预先建立的用于与该客户端通信的多个通道中选择一个处于正常状态的通道作为目标通道;
其中,所述推送消息是推送应用客户端通过服务器发送给推送消息服务器的;所述推送应用客户端发送的推送消息中包含消息类型标识;所述服务器是根据接收推送消息携带的消息类型标识,以及预先存储的客户端与向客户端发送推送消息的指定通道的对应关系,确定推送消息的发送策略,并在所述向该客户端发送推送消息的指定通道故障时,放入延迟队列中,并经过预设延迟时间后,将推送消息移入发送队列发送的;
其中,存储有客户端与向客户端发送推送消息的指定通道的对应关系;并且该对应关系中包括推送消息与推送消息服务器的对应关系;
将所述目标通道更新为向该客户端发送推送消息的指定通道,并向其他推送消息服务器发送更新后的客户端与向客户端发送推送消息的指定通道的对应关系,以在所述推送消息服务器故障后,采用其他推送消息服务器根据更新后的存储有客户端与向客户端发送推送消息的指定通道的对应关系,执行推送消息任务。
9.根据权利要求8所述的装置,其特征在于,所述发送策略为在预先建立的用于与该客户端通信的多个通道中选择至少两个通道作为目标通道。
10.根据权利要求8所述的装置,其特征在于,所述传输协议包括传输控制协议/网际协议TCP/IP协议、消息队列遥测传输MQTT协议、短信协议、以及第三方协议中的任意两种或多种。
11.根据权利要求10所述的装置,其特征在于,所述处理单元具体用于:
所述发送策略为在预先建立的用于与该客户端通信的多个通道中选择一个处于正常状态的通道作为目标通道时,根据预先设置的多个通道的优先级,在预先建立的用于与该客户端通信的多个通道中,选择优先级最高的处于正常状态的通道作为目标通道,其中,所述预先设置的多个通道的优先级中,使用TCP/IP协议传输消息的通道的优先级大于使用MQTT协议传输消息的通道的优先级,使用MQTT协议传输消息的通道的优先级大于使用短信协议传输消息的通道的优先级,使用短信协议传输消息的通道的优先级大于使用第三方协议传输消息的通道的优先级。
12.根据权利要求8所述的装置,其特征在于,所述处理单元还用于:
在所述发送策略为在预先建立的用于与该客户端通信的多个通道中选择至少两个通道作为目标通道时,所述通过所述目标通道向该客户端发送所述推送消息之后,根据预先设置的多个通道的优先级,将所述目标通道中优先级最高的通道更新为向该客户端发送推送消息的指定通道;或者
在所述目标通道中随机选择一个通道,并将选择的通道更新为向该客户端发送推送消息的指定通道。
13.根据权利要求8或9所述的装置,其特征在于,所述装置还包括:
第二接收单元,用于接收所述客户端发送的用于表征接收到所述推送消息的响应消息。
14.根据权利要求13所述的装置,其特征在于,所述处理单元还用于:
将接收到所述响应消息的通道更新为向该客户端发送推送消息的指定通道。
15.一种消息推送设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至7中任一项所述的消息推送方法。
16.一种存储介质,其特征在于,当所述存储介质中的指令由消息推送设备的执行器执行时,使得所述消息推送设备能够执行如权利要求1至7中任一项所述的消息推送方法。
CN201911132921.2A 2019-11-19 2019-11-19 一种消息推送方法、装置、设备及介质 Active CN110855792B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911132921.2A CN110855792B (zh) 2019-11-19 2019-11-19 一种消息推送方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911132921.2A CN110855792B (zh) 2019-11-19 2019-11-19 一种消息推送方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN110855792A CN110855792A (zh) 2020-02-28
CN110855792B true CN110855792B (zh) 2023-04-18

Family

ID=69602217

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911132921.2A Active CN110855792B (zh) 2019-11-19 2019-11-19 一种消息推送方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN110855792B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111464618B (zh) * 2020-03-30 2023-07-04 广州市百果园信息技术有限公司 一种消息推送方法、装置、设备和存储介质
CN111541662B (zh) * 2020-04-15 2022-09-23 赞同科技股份有限公司 一种基于二进制通信协议的通信方法、电子设备及存储介质
CN111741058A (zh) * 2020-05-07 2020-10-02 北京五八信息技术有限公司 一种消息推送方法、装置、电子设备及存储介质
CN111611206A (zh) * 2020-05-18 2020-09-01 深圳易伙科技有限责任公司 一种基于平台级企业消息总线的消息处理方法和装置
CN113727406B (zh) * 2020-05-21 2022-11-29 北京三快在线科技有限公司 通信控制方法、装置、设备及计算机可读存储介质
CN111970340B (zh) * 2020-07-30 2023-06-16 北京大米科技有限公司 信息传输方法、可读存储介质和电子设备
CN111901440B (zh) * 2020-08-11 2023-04-07 武汉伊科诺慧通软件有限公司 一种多通道消息推送方法及装置
CN112235399B (zh) * 2020-10-14 2024-01-02 腾讯科技(深圳)有限公司 内容推送方法、装置、计算机设备及存储介质
CN112600878B (zh) * 2020-11-30 2022-04-01 新华三大数据技术有限公司 一种数据传输方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109450805A (zh) * 2018-10-31 2019-03-08 百度在线网络技术(北京)有限公司 消息推送方法、装置以及系统
CN109905312A (zh) * 2017-12-08 2019-06-18 北京新媒传信科技有限公司 消息推送方法、装置及系统
CN110209507A (zh) * 2019-05-16 2019-09-06 厦门市美亚柏科信息股份有限公司 基于消息队列的数据处理方法、装置、系统及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8788881B2 (en) * 2011-08-17 2014-07-22 Lookout, Inc. System and method for mobile device push communications
CN106470162B (zh) * 2015-08-19 2019-06-25 中国移动通信集团公司 一种业务报文的组播方法及装置
US9774389B2 (en) * 2015-09-01 2017-09-26 International Business Machines Corporation Dynamic link repair from lane failure with minimal link down-time while sparing fault channels
WO2017214930A1 (zh) * 2016-06-16 2017-12-21 华为技术有限公司 可穿戴设备与移动终端之间通信的方法和装置
CN107124440A (zh) * 2016-12-01 2017-09-01 北京小度信息科技有限公司 消息推送方法、消息推送服务器、客户端及系统
CN109769214A (zh) * 2018-12-26 2019-05-17 彩讯科技股份有限公司 一种消息推送方法、装置、终端及介质
CN109684111A (zh) * 2018-12-28 2019-04-26 安徽同徽网络技术有限公司 消息推送方法、消息推送系统和计算机可读存储介质
CN110022369A (zh) * 2019-04-11 2019-07-16 上海拉扎斯信息科技有限公司 消息处理方法、装置、电子设备及计算机可读存储介质
CN110048892B (zh) * 2019-04-22 2022-08-12 携程旅游信息技术(上海)有限公司 通讯平台故障隔离方法及系统
CN110365605B (zh) * 2019-06-28 2023-01-10 浙江吉利控股集团有限公司 一种消息发送方法、装置、设备及存储介质
CN110460638A (zh) * 2019-07-11 2019-11-15 深圳职业技术学院 消息推送方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109905312A (zh) * 2017-12-08 2019-06-18 北京新媒传信科技有限公司 消息推送方法、装置及系统
CN109450805A (zh) * 2018-10-31 2019-03-08 百度在线网络技术(北京)有限公司 消息推送方法、装置以及系统
CN110209507A (zh) * 2019-05-16 2019-09-06 厦门市美亚柏科信息股份有限公司 基于消息队列的数据处理方法、装置、系统及存储介质

Also Published As

Publication number Publication date
CN110855792A (zh) 2020-02-28

Similar Documents

Publication Publication Date Title
CN110855792B (zh) 一种消息推送方法、装置、设备及介质
EP3968607B1 (en) Service invocation methods
CN108616914B (zh) 一种断线重连的方法及装置
CN110808948B (zh) 远程过程调用方法、装置及系统
CN109511136B (zh) 一种网络切片的选择方法和装置
CN111803925B (zh) 云游戏的转发服务器的调度方法、装置及可读存储介质
CN104954321B (zh) 一种连接切换方法、装置及系统
CN111885644B (zh) 一种有线网络和无线网络自动切换的方法
CN112565341A (zh) 诊断路由的方法、装置、系统、设备和存储介质
CN111884875A (zh) 一种离线设备确定方法及装置
CN110995829B (zh) 实例调用方法、装置及计算机存储介质
US8250140B2 (en) Enabling connections for use with a network
CN113259918A (zh) 设备的绑定方法及系统
CN113691520B (zh) 获取流媒体信息的方法、装置、存储介质及电子装置
CN113572695A (zh) 链路聚合方法、装置、计算设备及计算机存储介质
CN112866133A (zh) 用于获取共用最大分段大小mss的方法及装置
CN111416852A (zh) 在多个负载均衡器之间进行会话同步的方法和负载均衡器
CN113133130B (zh) 通信方法和装置
CN113741403B (zh) 车辆诊断方法、诊断设备及计算机可读存储介质
CN110011914B (zh) 管理报文的转发方法及装置
EP3273704A1 (en) Stub network establishing method, device and system, and storage medium
CN114745221B (zh) Modbus通信系统及通信方法
CN113746724B (zh) 消息传输方法、装置、电子设备及介质
CN114338699B (zh) 一种基于动态策略的区块链通信方法及系统
CN111600814B (zh) 一种vfc接口配置方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant