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

文档序号:9508644阅读:743来源:国知局
服务器推送信息的方法及客户端接收推送信息的方法
【技术领域】
[0001]本发明涉及信息推送技术领域,特别是涉及服务器推送信息的方法及客户端接收推送信息的方法。
【背景技术】
[0002]目前物联网应用中经常会遇到需要外网服务器主动向内网客户端实时推送信息,外网服务器即云服务器,内网客户端包括被控设备,如移动终端等,通常这种推送信息的过程称之为反向推送,用于实现云服务器向被控设备发送控制命令设置以及发出要求被控设备反馈设备状态的指令,实时性越高客户体验越好。由于内网与外网通信需要采用NAT (Network Address Translat1n,网络地址转换)来实现,多个内网设备分别具有内网地址,而多个内网设备通过地址转换以一个外网地址与外网服务器通信,因此,内网客户端是可以直接向外网服务器发起连接访问,而外网服务器则无法直接向内网客户端发起连接访问,因此客户端与服务器的连接需由客户端发起。
[0003]以下客户端均指内网客户端,即被控设备,服务器均指外网服务器,即云服务器。现有的反向推送,一般的实现方法有两种:
[0004]1、通过客户端发起与服务器的TCP (Transmiss1n Control Protocol,传输控制协议)连接并一直保持此连接,即TCP长连接,TCP连接是一种面向连接的、可靠的、基于字节流的传输层通信协议,使得服务器可以通过此连接向客户端实时推送信息。
[0005]此方法的缺点是,采用长连接方式对于服务器来说太浪费资源,服务器需要为每一个长连接的客户端建立一个TCP长连接进程或者线程,而每一个建立的进程和线程都需要占用服务器内存,从而限制了单台服务器所能建立的长连接个数。如果要实现大量的客户端长连接,由于受限于单台服务器的内存最大容量,所以需要架设更多台的服务器来实现,需要投入很多成本。
[0006]2、客户端定时发起向服务器的TCP连接,即定时TCP短连接,定时查询服务器是否有信息推送。
[0007]此方法的缺点是,定时查询缺少实时性,例如,服务器有新的信息通知,而此时处于定时查询的间隔内,则服务器无法将消息及时推送至客户端;而另一方面,服务器并不是时刻都有新的信息通知,若客户端主动发起查询,而此时服务器并无新的信息通知,则浪费了建立此次的连接的资源,当大量客户端主动发起查询时,服务器的负担则相应加重,需要更多资源建立连接,因此需要建立更多的服务器提供资源,同样需要增加成本投入。

【发明内容】

[0008]基于此,有必要针对现有实现反向推送信息的方法需要大量耗费服务器资源,缺乏实时性的缺陷,提供一种实时性高、服务器资源消耗量少的服务器推送信息的方法及客户端接收推送信息的方法。
[0009]—种服务器推送信息的方法,包括:
[0010]接收客户端每间隔一个第一预设时间通过UDP协议发送的第一数据包,所述第一数据包携带客户端地址信息;
[0011]判断是否存在待推送信息,如果是,则根据最近一次接收的第一数据包携带的所述客户端地址信息,通过UDP协议向所述客户端发送第三数据包,第三数据包携带要求客户端发出建立TCP连接请求的信息;
[0012]响应所述客户端发起建立TCP连接的请求,与所述客户端建立TCP连接,通过TCP连接向所述客户端发送所述待推送信息;
[0013]在完成向所述客户端发送所述待推送信息后,断开与所述客户端的TCP连接。
[0014]在一个实施例中,所述接收客户端每间隔一个第一预设时间通过UDP协议发送的第一数据包的步骤之后包括:
[0015]每接收一个所述第一数据包,则相应的通过UDP协议向所述客户端发送一个用于响应的第二数据包;
[0016]在一个实施例中,还包括:
[0017]判断在第二预设时间内是否接收到所述客户端发送的所述第一数据包,若否,则通知所述客户端调节所述第一预设时间。
[0018]在一个实施例中,所述判断在第二预设时间内是否接收到所述客户端发送的所述第一数据包,若否,则通知所述客户端调节所述第一预设时间的步骤具体包括:
[0019]判断在第二预设时间内是否接收到所述客户端发送的所述第一数据包,若否,则标记相应的客户端,并记录为第一客户端;
[0020]在接收到所述第一客户端的下一个第一数据包之后,通过UDP协议向所述第一客户端发送第四数据包,所述第四数据包携带通知所述客户端减小所述第一预设时间的信息。
[0021]—种客户端接收推送信息的方法,包括:
[0022]每间隔一个第一预设时间通过UDP协议向服务器发送第一数据包,所述第一数据包携带客户端地址信息;
[0023]判断是否获取到所述服务器发送的携带要求建立TCP连接请求信息的第三数据包,是则向所述服务器发起建立TCP连接的请求;
[0024]与所述服务器建立TCP连接,通过TCP连接进行接收所述服务器的待推送信息;
[0025]在完成接收所述服务器的待推送消息后,断开与所述服务器的TCP连接。
[0026]在一个实施例中,所述每间隔一个第一预设时间通过UDP协议向服务器发送第一数据包的步骤之后还包括:
[0027]判断是否接收到所述服务器通过UDP协议发送的用于响应所述第一数据包的第二数据包,是则继续每间隔一个第一预设时间通过UDP协议向所述服务器发送第一数据包,否则减小所述第一预设时间。
[0028]在一个实施例中,还包括:
[0029]判断是否接收到所述服务器发送的调节所述第一预设时间的通知,若是,则根据所述服务器发送的调节所述第一预设时间的通知调节所述第一预设时间。
[0030]在一个实施例中,所述判断是否接收到所述服务器发送的调节所述第一预设时间的通知,若是,则根据所述服务器发送的调节所述第一预设时间的通知调节所述第一预设时间的步骤具体包括:
[0031]判断是否接收到所述服务器通过UDP协议发送的第四数据包,所述第四数据包携带通知减小所述第一预设时间的信息,若是,则根据所述第四数据包减小所述第一预设时间。
[0032]上述物联网服务器反向推送信息的方法及物联网客户端接收反向推送信息的方法,通过UDP(User Datagram Protocol,用户数据报协议)协议将客户端地址信息发送至服务器,由于UDP是一种无连接的,可靠性较差的传输层协议,提供面向事务的简单不可靠信息传送服务,因而具有资源消耗小,处理速度快的优点,当服务器需要推送信息时,通过UDP数据包发送存在待推送信息的通知,以此减小对服务器资源的占用,并提高客户端和服务器的处理速度,从而节省了服务器成本,此外,实现客户端和服务器的实时通信,客户端接收推送信息通知后建立与服务器的TCP连接用于发送推送消息,以此提高数据传输可靠性,并使得信息推送具有实时性。
【附图说明】
[0033]图1为本发明一实施例的服务器推送信息的方法的流程示意图;
[0034]图2为本发明一实施例的客户端接收推送信息的方法的流程示意图。
【具体实施方式】
[0035]为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的较佳实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。
[0036]值得一提的是,本发明尤其适用于各种物联网终端,如手机、平板电脑或者其他移动终端,在下面的实施例中仅以手机的使用场景作详细描述。
[0037]如图1所示,本发明一种服务器推送信息的方法的一个较佳实施例,包括以下步骤:
[0038]步骤S110,接收客户端每间隔一个第一预设时间通过UDP协议发送的第一数据包,所述第一数据包携带客户端地址信息。
[0039]UDP协议是一种无连接的,可靠性较差的传输层协议,提供面向事务的简单不可靠信息传送服务,不属于连接型协议,因而具有资源消耗小,处理速度快的优点,这样,服务器通过接收到第一数据包可以实时
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1