一种基于WebSocket的主动式消息推送系统技术方案

技术编号:19219689 阅读:661 留言:0更新日期:2018-10-20 08:11
本发明专利技术公开了一种基于WebSocket的主动式消息推送系统,涉及数据通信技术领域。本系统包括客户端SDK、消息推送服务器两大部分。通过架设消息推送服务器之后,客户端使用封装的SDK实现基于WebSocket的主动式消息推送系统。当客户端需要服务器推送某业务消息时,首先客户端通过调用客户端SDK从任意非特殊端口N(N>1023)向消息推送服务器的订阅监听端口A(A>1023)订阅业务消息,消息推送服务器接受到订阅请求后,通过WebSocket从推送端口B(B>1023)将消息发送到客户端的接受端口N+1。本方法实现主动式消息推送系统,通过建立WebSocket连接与服务器端进行交互,实现主动式的实时消息推送,提高通信效率,减少带宽资源。

【技术实现步骤摘要】
一种基于WebSocket的主动式消息推送系统
本专利技术涉及数据通信
,具体是一种基于WebSocket的主动式消息推送系统。
技术介绍
传统的服务器和客户端进行推送消息时,为了保证消息推送的及时性,客户端往往采用轮询的方法,即:客户端每隔固定的预设时间间隔向服务器发出请求来获取消息,而这种传统的方法浪费带宽和服务器资源,因为请求中有大半是无用的。对目前大多数应用来说,此种方法已不适用在对规模、分发能力,以及可用性等有较大、较高要求的系统中。
技术实现思路
为了克服上述现有技术的缺点,本专利技术提供一种基于WebSocket的主动式消息推送系统,实现主动模式的实时消息推送,提高通信效率,减少带宽资源。本专利技术是以如下技术方案实现的:一种基于WebSocket的主动式消息推送系统,包括客户端SDK和消息推送服务器两大部分;消息推送服务器开辟两个固定端口A和B,且固定端口A和B为非特殊的端口,A>1023,B>1023,A≠B,其中端口A称作订阅监听端口,端口B称作推送端口;客户端SDK开辟两个随机端口N和N+1,且随机端口N为非特殊的端口,N>1023,其中端口N称作订阅端口,端口N+1称作接收端口;首先,待客户端SDK的订阅端口N与消息推送服务器的订阅监听端口建立连接后,发送命令“PORTN+1”,告知消息推送服务器推送的接收端口为N+1;其次,消息推送服务器给客户端SDK的订阅端口N返回一个“ACK”,告知客户端SDK确认消息订阅成功;再次,消息推送服务器发起一个从它自己的推送端口B到客户端先前指定的接收端口N+1的消息推送,最后客户端SDK给消息推送服务器端返回一个“ACK”,告知消息推送服务器确认收到推送的消息。优选的,消息订阅具体步骤如下:(1)当客户端SDK根据业务需求需要订阅推送消息时,调用封装的客户端SDK,生成一个订阅端口N;(2)客户端SDK通过订阅端口N向消息推送服务器的订阅监听端口A发出订阅请求,并发送命令“PORTN+1”,告知消息推送服务器客户端SDK的接收端口为N+1;(3)消息推送服务器给客户端SDK的订阅端口N返回一个“ACK”,告知客户端SDK确认订阅成功;(4)客户端SDK订阅端口N收到“ACK”后,客户端SDK会开辟接收端口N+1,开始监听来着服务器的数据请求,接受推送消息,处理业务需求。优选的,消息推送具体步骤如下:(1)消息推送服务器收到客户端的订阅请求后,将订阅请求根据业务具体需求记录下来,当符合条件的消息出现时,触发推送功能;(2)消息推送服务器通过推送端口B将消息按协商好的格式发送到客户端SDK的接收端口N+1;(3)客户端SDK接收端口N+1收到数据后,根据返回的数据处理业务需求,同时通过接收端口向消息服务器的推送端口发送“ACK“,告知消息推送服务器确认收到推送的消息;(4)消息服务器收到“ACK”后,断开此次推送连接,继续监听推送消息,一旦符合订阅的内容将触发推送功能,进入步骤(2)。优选的,主动模式下,客户端SDK的防火墙处于关闭状态下,使得消息推送服务器与客户端建立连接。优选的,以消息推送服务器端防火墙为立足点,要支持主动模式消息推送系统需要打开如下交互中使用到的端口:(1)客户端SDK初始连接:消息推送服务器订阅监听端口A,接收客户端SDK订阅端口N,(2)消息推送服务器响应客户端SDK订阅命令:消息推送服务器订阅监听端口A到客户端SDK订阅端口N,(3)消息推送服务器初始化数据连接到客户端SDK数据接收端口:消息推送服务器推送端口B到客户端SDK接收端口N+1;(4)客户端发送ACK包到消息推送服务器的推送端口:消息推送服务器推送端口B接收客户端SDK接收端口N+1。本专利技术的有益效果是:(1)通过架设消息推送服务器之后,客户端使用封装的SDK实现基于WebSocket的主动式消息推送系统,每个部分各司其职,明确分工,便于代码的实现和维护;(2)WebSocket具有报文头较小、客户端和服务端仅需一次握手便能建立链路而相互发送数据以及实时、全双工等优点,提高通信效率,减少带宽资。附图说明下面结合附图对本专利技术作进一步说明。图1为本专利技术中的整体结构示意图;图2为本专利技术中消息订阅工作流程图;图3为本专利技术中消息推送工作流程图;图4-1为本专利技术中客户端与消息推送服务器交互的主要包格式一示意图;图4-2为本专利技术中客户端与消息推送服务器交互的主要包格式二示意图。具体实施方式如图1所示,一种基于WebSocket的主动式消息推送系统,本专利技术通过架设消息推送服务器之后,客户端使用封装的SDK实现基于WebSocket的主动式消息推送系统。当客户端需要服务器推送某业务消息时,首先客户端通过调用客户端SDK从任意非特殊端口N(N>1023)向消息推送服务器的订阅监听端口A(A>1023)订阅业务消息,消息推送服务器接受到订阅请求后,通过WebSocket从推送端口B(B>1023)将消息发送到客户端SDK的接受端口N+1。如图2所示,消息订阅的工作流程具体如下:(1)当客户端根据业务需求需要订阅推送消息时,调用封装的SDK,生成一个非特殊随机端口N(N>1023);(2)客户端SDK通过端口N向消息推送服务器的订阅监听端口A发出订阅请求,并发送命令“PORTN+1”,告知消息推送服务器客户端的接收端口为N+1;(3)消息推送服务器给客户端的订阅端口N返回一个“ACK”,告知客户端确认订阅成功;(4)客户端订阅端口N收到“ACK”后,客户端会开辟端口N+1,开始监听来着服务器的数据请求,接受推送消息,处理业务需求。如图3所示,本专利技术中消息推送的工作流程具体如下:(1)消息推送服务器收到客户端的订阅请求后,将订阅请求根据业务具体需求记录下来,当符合条件的消息出现时,触发推送功能;(2)消息推送服务器通过推送端口B将消息按协商好的格式发送到客户端的接收端口N+1;(3)客户端接收端口N+1收到数据后,根据返回的数据处理业务需求,同时通过接收端口向消息服务器的推送端口发送“ACK”,告知消息推送服务器确认收到推送的消息;(4)消息推送服务器收到“ACK”后,断开此次推送连接,继续监听推送消息,一旦符合订阅的内容将触发推送功能,进入(2)。如图4所示,客户端和消息推送服务端通信的包格式,涉及交互的主要命令有如下2种形式:PORTN+1命令如图4-1:用于客户端告知消息推送服务器客户端接受端口的开发规则,N+1表示订阅端口基础上加一;ACK命令如图4-2:即时确认字符,在数据通信中,接收站发送给发送站的一种传输类控制字符。表示发来的数据已确认接收无误。由上述技术方案可知,本方法集成了已有技术方案的优点,实现了高性能的消息推送系统,提高系统性能,节约网络资源。本文档来自技高网...

【技术保护点】
1.一种基于WebSocket的主动式消息推送系统,其特征在于:包括客户端SDK和消息推送服务器两大部分;消息推送服务器开辟两个固定端口A和B,且固定端口A和B为非特殊的端口,A>1023,B>1023,A≠B,其中端口A称作订阅监听端口,端口B称作推送端口;客户端SDK开辟两个随机端口N和N+1,且随机端口N为非特殊的端口,N>1023,其中端口N称作订阅端口,端口N+1称作接收端口;首先,待客户端SDK的订阅端口N与消息推送服务器的订阅监听端口建立连接后,发送命令“PORT N+1”,告知消息推送服务器推送的接收端口为N+1;其次,消息推送服务器给客户端SDK的订阅端口N返回一个“ACK”,告知客户端SDK确认消息订阅成功;再次,消息推送服务器发起一个从它自己的推送端口B到客户端先前指定的接收端口N+1的消息推送,最后客户端SDK给消息推送服务器端返回一个“ACK”,告知消息推送服务器确认收到推送的消息。

【技术特征摘要】
1.一种基于WebSocket的主动式消息推送系统,其特征在于:包括客户端SDK和消息推送服务器两大部分;消息推送服务器开辟两个固定端口A和B,且固定端口A和B为非特殊的端口,A>1023,B>1023,A≠B,其中端口A称作订阅监听端口,端口B称作推送端口;客户端SDK开辟两个随机端口N和N+1,且随机端口N为非特殊的端口,N>1023,其中端口N称作订阅端口,端口N+1称作接收端口;首先,待客户端SDK的订阅端口N与消息推送服务器的订阅监听端口建立连接后,发送命令“PORTN+1”,告知消息推送服务器推送的接收端口为N+1;其次,消息推送服务器给客户端SDK的订阅端口N返回一个“ACK”,告知客户端SDK确认消息订阅成功;再次,消息推送服务器发起一个从它自己的推送端口B到客户端先前指定的接收端口N+1的消息推送,最后客户端SDK给消息推送服务器端返回一个“ACK”,告知消息推送服务器确认收到推送的消息。2.根据权利要求1所述的一种基于WebSocket的主动式消息推送系统,其特征在于:消息订阅具体步骤如下:(1)当客户端SDK根据业务需求需要订阅推送消息时,调用封装的客户端SDK,生成一个订阅端口N;(2)客户端SDK通过订阅端口N向消息推送服务器的订阅监听端口A发出订阅请求,并发送命令“PORTN+1”,告知消息推送服务器客户端SDK的接收端口为N+1;(3)消息推送服务器给客户端SDK的订阅端口N返回一个“ACK”,告知客户端SDK确认订阅成功;(4)客户端SDK订阅端口N收到“ACK”后,客户端SDK会开辟接收端口N+1,开始监听...

【专利技术属性】
技术研发人员:张立王建强夏开建陈新磊
申请(专利权)人:常熟市第一人民医院
类型:发明
国别省市:江苏,32

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

1