[发明专利]一种用于NAT网络中服务器向客户端发送消息的方法在审
申请号: | 201611164543.2 | 申请日: | 2016-12-16 |
公开(公告)号: | CN106713437A | 公开(公告)日: | 2017-05-24 |
发明(设计)人: | 陈明;高林武;马建东 | 申请(专利权)人: | 江苏神州信源系统工程有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L29/12 |
代理公司: | 北京连和连知识产权代理有限公司11278 | 代理人: | 刘小峰 |
地址: | 211899 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 nat 网络 服务器 客户端 发送 消息 方法 | ||
技术领域
本发明涉及计算机网络通信领域,并且更具体地涉及一种用于NAT网络中服务器向客户端发送消息的方法。
背景技术
客户端与服务器之间的通信是基于HTTP(超文本传输协议)的通信,而HTTP是无状态的通信协议,每一次请求-响应都是基于一个新建立的HTTP连接,这就使得服务器主动通知客户端成为一个难点。
目前,主流的解决方式有以下两种:一是客户端轮询技术,即客户端周期性地主动访问服务器的公网IP地址,以获取服务器数据状态的变化,此种方式的问题是:如果服务器的业务数据在两次连续的轮询的请求过程中没有变化,后一次请求的做工实际为负数——浪费了服务器端的带宽,而且没有获得有效负载;而且,客户端轮询过程中的定时器间隔时间参数也是一个难把握的问题,由于需要及时获取服务器端的业务数据状态,这个定时间隔参数设置不宜过长,但是过短又会频发第一个问题。
另一种方式是:客户端与服务器之间提供一个双向的、在一条TCP通道中的全双工的通信,即客户端与服务器之间建立长连接,此种方式的问题是:需要客户端与服务器之间通过Ping-Pong进行双向的心跳机制,来保证链路的可靠性,实现复杂,同样也造成了服务器端的带宽浪费。
发明内容
针对上述现有技术中存在的问题,本发明的目的在于提供一种用于NAT网络中服务器向客户端推送消息的方法,其通过在服务器和位于NAT网关后的客户端之间建立UDP通信通道来实现服务器实时向客户端推送数据的功能。
为了实现上述目的,本发明采用的技术方案如下:
一种用于NAT网络中服务器向客户端发送消息的方法,其步骤包括:
在服务器中开通UDP-S服务以与客户端通信;
客户端通过向服务器的UDP-S服务发送UDP数据包以建立本地缓存信息表;
服务器根据UDP数据包判断客户端是否位于NAT网关限定的内网中,并返回客户端标识;
客户端响应客户端标识以完成服务器和客户端之间的UDP通信通道的建立;
服务器根据本地缓存信息表的信息调用UDP-S服务通过UDP通信通道向客户端发送消息。
根据本发明的一个实施例,方法进一步包括:客户端通过服务器的TCP-S服务将客户端的ID号、内网IP地址和内网UDP监听端口发送给服务器并保存在服务器的数据库中。
根据本发明的一个实施例,方法进一步包括:在客户端的ID号、内网IP地址和内网UDP监听端口中的任一项发生改变时,客户端通过服务器的TCP-S服务将客户端的ID号、内网IP地址和内网UDP监听端口发送给服务器以更新服务器的数据库。
根据本发明的一个实施例,方法进一步包括:在客户端的ID号、内网IP地址和内网UDP监听端口中的任一项发生改变时,客户端通过服务器的UDP-S服务将客户端的ID号、内网IP地址和内网UDP监听端口发送给服务器以更新服务器缓存信息表
根据本发明的一个实施例,UDP数据包包含客户端的ID号、内网IP地址和内网UDP监听端口。
根据本发明的一个实施例,本地缓存信息表包含客户端的ID号、内网IP地址、内网UDP监听端口、公网IP地址以及公网端口。
根据本发明的一个实施例,所述方法进一步包括:服务器从UDP数据包中获取客户端的ID号、内网IP地址和内网UDP监听端口,并根据ID号在服务器缓存信息表中找到客户端的公网IP地址和公网端口,如果内网IP地址和公网IP地址一样并且内网UDP监听端口和公网端口一样,则客户端标识为0,反之,客户端标识为1。
根据本发明的一个实施例,如果客户端标识为0,客户端停止向服务器发送UDP数据包;如果客户端标识为1,客户端每隔一定时间间隔通过向服务器的UDP-S服务发送UDP数据包。
根据本发明的一个实施例,ID号是通过计算客户端的主板序列号和/或硬盘序列号而得到。
根据本发明的一个实施例,ID是在不能获得客户端的主板序列号和/或硬盘序列号的情况下通过计算客户端的MAC地址而得到。
本发明具有以下有益效果:服务器端通过使用UDP-S服务推送机制解决了轮询方式低效地消耗服务器的网络带宽和系统负载的问题。同时,由于服务器主动向客户端发送消息,因此有很好的低延迟性。进一步,服务器端通过UDP-S服务维持与客户端的UDP通信通道实现了通用的客户端与服务器之间基于HTTP的通信,服务器向客户端推送的任何数据都可以使用该UDP通信通道,而且UDP通信通道的建立更简单。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏神州信源系统工程有限公司,未经江苏神州信源系统工程有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611164543.2/2.html,转载请声明来源钻瓜专利网。