服务器推送信息的方法及客户端接收推送信息的方法技术

技术编号:12735758 阅读:110 留言:0更新日期:2016-01-20 19:33
本发明专利技术涉及一种服务器推送信息的方法及客户端接收推送信息的方法,所述服务器推送信息的方法包括:接收客户端每间隔一个第一预设时间通过UDP协议发送的第一数据包,所述第一数据包携带客户端地址信息;判断是否存在待推送信息,如果是,则根据最近一次接收的第一数据包携带的客户端地址信息,通过UDP协议向客户端发送第三数据包,第三数据包携带要求客户端发出建立TCP连接请求的信息;响应客户端发起建立TCP连接的请求,与客户端建立TCP连接,通过TCP连接向客户端发送待推送信息;在完成向所述客户端发送待推送信息后,断开与客户端的TCP连接。通过上述方法减小对服务器资源的占用,节省服务器成本,并使得信息推送具有实时性。

【技术实现步骤摘要】

本专利技术涉及信息推送
,特别是涉及服务器推送信息的方法及客户端接收推送信息的方法
技术介绍
目前物联网应用中经常会遇到需要外网服务器主动向内网客户端实时推送信息,外网服务器即云服务器,内网客户端包括被控设备,如移动终端等,通常这种推送信息的过程称之为反向推送,用于实现云服务器向被控设备发送控制命令设置以及发出要求被控设备反馈设备状态的指令,实时性越高客户体验越好。由于内网与外网通信需要采用NAT(NetworkAddressTranslation,网络地址转换)来实现,多个内网设备分别具有内网地址,而多个内网设备通过地址转换以一个外网地址与外网服务器通信,因此,内网客户端是可以直接向外网服务器发起连接访问,而外网服务器则无法直接向内网客户端发起连接访问,因此客户端与服务器的连接需由客户端发起。以下客户端均指内网客户端,即被控设备,服务器均指外网服务器,即云服务器。现有的反向推送,一般的实现方法有两种:1、通过客户端发起与服务器的TCP(TransmissionControlProtocol,传输控制协议)连接并一直保持此连接,即TCP长连接,TCP连接是一种面向连接的、可靠的、基于字节流的传输层通信协议,使得服务器可以通过此连接向客户端实时推送信息。此方法的缺点是,采用长连接方式对于服务器来说太浪费资源,服务器需要为每一个长连接的客户端建立一个TCP长连接进程或者线程,而每一个建立>的进程和线程都需要占用服务器内存,从而限制了单台服务器所能建立的长连接个数。如果要实现大量的客户端长连接,由于受限于单台服务器的内存最大容量,所以需要架设更多台的服务器来实现,需要投入很多成本。2、客户端定时发起向服务器的TCP连接,即定时TCP短连接,定时查询服务器是否有信息推送。此方法的缺点是,定时查询缺少实时性,例如,服务器有新的信息通知,而此时处于定时查询的间隔内,则服务器无法将消息及时推送至客户端;而另一方面,服务器并不是时刻都有新的信息通知,若客户端主动发起查询,而此时服务器并无新的信息通知,则浪费了建立此次的连接的资源,当大量客户端主动发起查询时,服务器的负担则相应加重,需要更多资源建立连接,因此需要建立更多的服务器提供资源,同样需要增加成本投入。
技术实现思路
基于此,有必要针对现有实现反向推送信息的方法需要大量耗费服务器资源,缺乏实时性的缺陷,提供一种实时性高、服务器资源消耗量少的服务器推送信息的方法及客户端接收推送信息的方法。一种服务器推送信息的方法,包括:接收客户端每间隔一个第一预设时间通过UDP协议发送的第一数据包,所述第一数据包携带客户端地址信息;判断是否存在待推送信息,如果是,则根据最近一次接收的第一数据包携带的所述客户端地址信息,通过UDP协议向所述客户端发送第三数据包,第三数据包携带要求客户端发出建立TCP连接请求的信息;响应所述客户端发起建立TCP连接的请求,与所述客户端建立TCP连接,通过TCP连接向所述客户端发送所述待推送信息;在完成向所述客户端发送所述待推送信息后,断开与所述客户端的TCP连接。在一个实施例中,所述接收客户端每间隔一个第一预设时间通过UDP协议发送的第一数据包的步骤之后包括:每接收一个所述第一数据包,则相应的通过UDP协议向所述客户端发送一个用于响应的第二数据包;在一个实施例中,还包括:判断在第二预设时间内是否接收到所述客户端发送的所述第一数据包,若否,则通知所述客户端调节所述第一预设时间。在一个实施例中,所述判断在第二预设时间内是否接收到所述客户端发送的所述第一数据包,若否,则通知所述客户端调节所述第一预设时间的步骤具体包括:判断在第二预设时间内是否接收到所述客户端发送的所述第一数据包,若否,则标记相应的客户端,并记录为第一客户端;在接收到所述第一客户端的下一个第一数据包之后,通过UDP协议向所述第一客户端发送第四数据包,所述第四数据包携带通知所述客户端减小所述第一预设时间的信息。一种客户端接收推送信息的方法,包括:每间隔一个第一预设时间通过UDP协议向服务器发送第一数据包,所述第一数据包携带客户端地址信息;判断是否获取到所述服务器发送的携带要求建立TCP连接请求信息的第三数据包,是则向所述服务器发起建立TCP连接的请求;与所述服务器建立TCP连接,通过TCP连接进行接收所述服务器的待推送信息;在完成接收所述服务器的待推送消息后,断开与所述服务器的TCP连接。在一个实施例中,所述每间隔一个第一预设时间通过UDP协议向服务器发送第一数据包的步骤之后还包括:判断是否接收到所述服务器通过UDP协议发送的用于响应所述第一数据包的第二数据包,是则继续每间隔一个第一预设时间通过UDP协议向所述服务器发送第一数据包,否则减小所述第一预设时间。在一个实施例中,还包括:判断是否接收到所述服务器发送的调节所述第一预设时间的通知,若是,则根据所述服务器发送的调节所述第一预设时间的通知调节所述第一预设时间。在一个实施例中,所述判断是否接收到所述服务器发送的调节所述第一预设时间的通知,若是,则根据所述服务器发送的调节所述第一预设时间的通知调节所述第一预设时间的步骤具体包括:判断是否接收到所述服务器通过UDP协议发送的第四数据包,所述第四数据包携带通知减小所述第一预设时间的信息,若是,则根据所述第四数据包减小所述第一预设时间。上述物联网服务器反向推送信息的方法及物联网客户端接收反向推送信息的方法,通过UDP(UserDatagramProtocol,用户数据报协议)协议将客户端地址信息发送至服务器,由于UDP是一种无连接的,可靠性较差的传输层协议,提供面向事务的简单不可靠信息传送服务,因而具有资源消耗小,处理速度快的优点,当服务器需要推送信息时,通过UDP数据包发送存在待推送信息的通知,以此减小对服务器资源的占用,并提高客户端和服务器的处理速度,从而节省了服务器成本,此外,实现客户端和服务器的实时通信,客户端接收推送信息通知后建立与服务器的TCP连接用于发送推送消息,以此提高数据传输可靠性,并使得信息推送具有实时性。附图说明图1为本专利技术一实施例的服务器推送信息的方法的流程示意图;图2为本专利技术一实施例的客户端接收推送信息的方法的流程示意图。具体实施方式为了便于理解本专利技术,下面将参照相关附图对本发本文档来自技高网...

【技术保护点】
一种服务器推送信息的方法,其特征在于,包括:接收客户端每间隔一个第一预设时间通过UDP协议发送的第一数据包,所述第一数据包携带客户端地址信息;判断是否存在待推送信息,如果是,则根据最近一次接收的第一数据包携带的所述客户端地址信息,通过UDP协议向所述客户端发送第三数据包,第三数据包携带要求客户端发出建立TCP连接请求的信息;响应所述客户端发起建立TCP连接的请求,与所述客户端建立TCP连接,通过TCP连接向所述客户端发送所述待推送信息;在完成向所述客户端发送所述待推送信息后,断开与所述客户端的TCP连接。

【技术特征摘要】
1.一种服务器推送信息的方法,其特征在于,包括:
接收客户端每间隔一个第一预设时间通过UDP协议发送的第一数据包,所
述第一数据包携带客户端地址信息;
判断是否存在待推送信息,如果是,则根据最近一次接收的第一数据包携
带的所述客户端地址信息,通过UDP协议向所述客户端发送第三数据包,第三
数据包携带要求客户端发出建立TCP连接请求的信息;
响应所述客户端发起建立TCP连接的请求,与所述客户端建立TCP连接,
通过TCP连接向所述客户端发送所述待推送信息;
在完成向所述客户端发送所述待推送信息后,断开与所述客户端的TCP连
接。
2.根据权利要求1所述的服务器推送信息的方法,其特征在于,所述接收
客户端每间隔一个第一预设时间通过UDP协议发送的第一数据包的步骤之后包
括:
每接收一个所述第一数据包,则相应的通过UDP协议向所述客户端发送一
个用于响应的第二数据包。
3.根据权利要求1所述的服务器推送信息的方法,其特征在于,还包括:
判断在第二预设时间内是否接收到所述客户端发送的所述第一数据包,若
否,则通知所述客户端调节所述第一预设时间。
4.根据权利要求3所述的服务器推送信息的方法,其特征在于,所述判断
在第二预设时间内是否接收到所述客户端发送的所述第一数据包,若否,则通
知所述客户端调节所述第一预设时间的步骤具体包括:
判断在第二预设时间内是否接收到所述客户端发送的所述第一数据包,若
否,则标记相应的客户端,并记录为第一客户端;
在接收到所述第一客户端的下一个第一数据包之后,通过UDP协议向所述
第一客户端发送第四数据包,所述第四数据包携带通知所述客户端减小所述第
...

【专利技术属性】
技术研发人员:陈志凡
申请(专利权)人:惠州高盛达科技有限公司惠州泰科立集团股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1