CN108683653A - 一种基于WebSocket的主动式消息推送系统 - Google Patents
一种基于WebSocket的主动式消息推送系统 Download PDFInfo
- Publication number
- CN108683653A CN108683653A CN201810424678.0A CN201810424678A CN108683653A CN 108683653 A CN108683653 A CN 108683653A CN 201810424678 A CN201810424678 A CN 201810424678A CN 108683653 A CN108683653 A CN 108683653A
- Authority
- CN
- China
- Prior art keywords
- port
- message
- push
- client
- server
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
Abstract
本发明公开了一种基于WebSocket的主动式消息推送系统,涉及数据通信技术领域。本系统包括客户端SDK、消息推送服务器两大部分。通过架设消息推送服务器之后,客户端使用封装的SDK实现基于WebSocket的主动式消息推送系统。当客户端需要服务器推送某业务消息时,首先客户端通过调用客户端SDK从任意非特殊端口N(N>1023)向消息推送服务器的订阅监听端口A(A>1023)订阅业务消息,消息推送服务器接受到订阅请求后,通过WebSocket从推送端口B(B>1023)将消息发送到客户端的接受端口N+1。本方法实现主动式消息推送系统,通过建立WebSocket连接与服务器端进行交互,实现主动式的实时消息推送,提高通信效率,减少带宽资源。
Description
技术领域
本发明涉及数据通信技术领域,具体是一种基于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与消息推送服务器的订阅监听端口建立连接后,发送命令“PORT N+1”,告知消息推送服务器推送的接收端口为N+1;其次,消息推送服务器给客户端SDK的订阅端口N返回一个“ACK”,告知客户端SDK确认消息订阅成功;再次,消息推送服务器发起一个从它自己的推送端口B到客户端先前指定的接收端口N+1的消息推送,最后客户端SDK给消息推送服务器端返回一个“ACK”,告知消息推送服务器确认收到推送的消息。
优选的,消息订阅具体步骤如下:
(1)当客户端SDK根据业务需求需要订阅推送消息时,调用封装的客户端SDK,生成一个订阅端口N;
(2)客户端SDK通过订阅端口N向消息推送服务器的订阅监听端口A发出订阅请求,并发送命令“PORT N+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发出订阅请求,并发送命令“PORT N+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种形式:
PORT N+1命令如图4-1:用于客户端告知消息推送服务器客户端接受端口的开发规则,N+1表示订阅端口基础上加一;
ACK命令如图4-2:即时确认字符,在数据通信中,接收站发送给发送站的一种传输类控制字符。表示发来的数据已确认接收无误。
由上述技术方案可知,本方法集成了已有技术方案的优点,实现了高性能的消息推送系统,提高系统性能,节约网络资源。
Claims (5)
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”,告知消息推送服务器确认收到推送的消息。
2.根据权利要求1所述的一种基于WebSocket的主动式消息推送系统,其特征在于:消息订阅具体步骤如下:
(1)当客户端SDK根据业务需求需要订阅推送消息时,调用封装的客户端SDK,生成一个订阅端口N;
(2)客户端SDK通过订阅端口N向消息推送服务器的订阅监听端口A发出订阅请求,并发送命令“PORT N+1”,告知消息推送服务器客户端SDK的接收端口为N+1;
(3)消息推送服务器给客户端SDK的订阅端口N返回一个“ACK”,告知客户端SDK确认订阅成功;
(4)客户端SDK订阅端口N收到“ACK”后,客户端SDK会开辟接收端口N+1,开始监听来着服务器的数据请求,接受推送消息,处理业务需求。
3.根据权利要求1所述的一种基于WebSocket的主动式消息推送系统,其特征在于:消息推送具体步骤如下:
(1)消息推送服务器收到客户端的订阅请求后,将订阅请求根据业务具体需求记录下来,当符合条件的消息出现时,触发推送功能;
(2)消息推送服务器通过推送端口B将消息按协商好的格式发送到客户端SDK的接收端口N+1;
(3)客户端SDK接收端口N+1收到数据后,根据返回的数据来处理业务需求,同时通过接收端口向消息服务器的推送端口发送“ACK“,告知消息推送服务器确认收到推送的消息;
(4)消息服务器收到“ACK”后,断开此次推送连接,继续监听推送消息,一旦符合订阅的内容将触发推送功能,进入步骤(2)。
4.根据权利要求1所述的一种基于WebSocket的主动式消息推送系统,其特征在于:主动模式下,客户端SDK的防火墙处于关闭状态下,使得消息推送服务器与客户端建立连接。
5.根据权利要求4所述的一种基于WebSocket的主动式消息推送系统,其特征在于:以消息推送服务器端防火墙为立足点,要支持主动模式消息推送系统需要打开如下交互中使用到的端口:
(1)客户端SDK初始连接:消息推送服务器订阅监听端口A,接收客户端SDK订阅端口N,
(2)消息推送服务器响应客户端SDK订阅命令:消息推送服务器订阅监听端口A到客户端SDK订阅端口N,
(3)消息推送服务器初始化数据连接到客户端SDK数据接收端口:消息推送服务器推送端口B到客户端SDK接收端口N+1;
(4)客户端发送ACK包到消息推送服务器的推送端口:消息推送服务器推送端口B接收客户端SDK接收端口N+1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810424678.0A CN108683653B (zh) | 2018-05-07 | 2018-05-07 | 一种基于WebSocket的主动式消息推送系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810424678.0A CN108683653B (zh) | 2018-05-07 | 2018-05-07 | 一种基于WebSocket的主动式消息推送系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108683653A true CN108683653A (zh) | 2018-10-19 |
CN108683653B CN108683653B (zh) | 2021-12-10 |
Family
ID=63802856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810424678.0A Expired - Fee Related CN108683653B (zh) | 2018-05-07 | 2018-05-07 | 一种基于WebSocket的主动式消息推送系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108683653B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110062055A (zh) * | 2019-05-31 | 2019-07-26 | 四川长虹电器股份有限公司 | 基于websocket的单用户多地登录分布式推送的方法 |
CN111970315A (zh) * | 2019-05-20 | 2020-11-20 | 北京车和家信息技术有限公司 | 推送消息的方法、装置及系统 |
CN112231620A (zh) * | 2020-10-28 | 2021-01-15 | 江苏睿孜星智控科技有限公司 | 一种数据推送展现方法 |
CN112769671A (zh) * | 2019-10-21 | 2021-05-07 | 北京车和家信息技术有限公司 | 消息处理方法、装置与系统 |
CN113553511A (zh) * | 2021-07-30 | 2021-10-26 | 中国建设银行股份有限公司 | 用户实时推荐方法、装置、系统、设备及可读存储介质 |
CN115378989A (zh) * | 2022-08-10 | 2022-11-22 | 上海黑眸智能科技有限责任公司 | 基于唤醒通道的mqtt主题订阅系统、方法、终端及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103546584A (zh) * | 2013-11-13 | 2014-01-29 | 深圳市中兴移动通信有限公司 | 信息推送方法和系统 |
US20150180920A1 (en) * | 2013-12-19 | 2015-06-25 | Robert Hunter | Methods and systems for secure data communication and system monitoring |
CN104796473A (zh) * | 2015-04-21 | 2015-07-22 | 努比亚技术有限公司 | 一种跨平台的信息推送方法及系统 |
CN105407180A (zh) * | 2015-12-29 | 2016-03-16 | 曙光信息产业(北京)有限公司 | 服务器的消息推送方法和装置 |
CN106209966A (zh) * | 2016-06-15 | 2016-12-07 | 中国科学院信息工程研究所 | 管控端更新设备状态的方法、服务端的处理方法和装置 |
CN107342934A (zh) * | 2017-06-19 | 2017-11-10 | 浪潮金融信息技术有限公司 | 一种基于WebSocket的混合模式移动应用实时消息推送方法及系统 |
CN107808227A (zh) * | 2017-09-21 | 2018-03-16 | 大唐软件技术股份有限公司 | 一种施工工单的派发方法和系统 |
-
2018
- 2018-05-07 CN CN201810424678.0A patent/CN108683653B/zh not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103546584A (zh) * | 2013-11-13 | 2014-01-29 | 深圳市中兴移动通信有限公司 | 信息推送方法和系统 |
US20150180920A1 (en) * | 2013-12-19 | 2015-06-25 | Robert Hunter | Methods and systems for secure data communication and system monitoring |
CN104796473A (zh) * | 2015-04-21 | 2015-07-22 | 努比亚技术有限公司 | 一种跨平台的信息推送方法及系统 |
CN105407180A (zh) * | 2015-12-29 | 2016-03-16 | 曙光信息产业(北京)有限公司 | 服务器的消息推送方法和装置 |
CN106209966A (zh) * | 2016-06-15 | 2016-12-07 | 中国科学院信息工程研究所 | 管控端更新设备状态的方法、服务端的处理方法和装置 |
CN107342934A (zh) * | 2017-06-19 | 2017-11-10 | 浪潮金融信息技术有限公司 | 一种基于WebSocket的混合模式移动应用实时消息推送方法及系统 |
CN107808227A (zh) * | 2017-09-21 | 2018-03-16 | 大唐软件技术股份有限公司 | 一种施工工单的派发方法和系统 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111970315A (zh) * | 2019-05-20 | 2020-11-20 | 北京车和家信息技术有限公司 | 推送消息的方法、装置及系统 |
CN110062055A (zh) * | 2019-05-31 | 2019-07-26 | 四川长虹电器股份有限公司 | 基于websocket的单用户多地登录分布式推送的方法 |
CN110062055B (zh) * | 2019-05-31 | 2021-07-20 | 四川长虹电器股份有限公司 | 基于websocket的单用户多地登录分布式推送的方法 |
CN112769671A (zh) * | 2019-10-21 | 2021-05-07 | 北京车和家信息技术有限公司 | 消息处理方法、装置与系统 |
CN112231620A (zh) * | 2020-10-28 | 2021-01-15 | 江苏睿孜星智控科技有限公司 | 一种数据推送展现方法 |
CN112231620B (zh) * | 2020-10-28 | 2023-11-03 | 南京科远智慧科技集团股份有限公司 | 一种数据推送展现方法 |
CN113553511A (zh) * | 2021-07-30 | 2021-10-26 | 中国建设银行股份有限公司 | 用户实时推荐方法、装置、系统、设备及可读存储介质 |
CN115378989A (zh) * | 2022-08-10 | 2022-11-22 | 上海黑眸智能科技有限责任公司 | 基于唤醒通道的mqtt主题订阅系统、方法、终端及介质 |
CN115378989B (zh) * | 2022-08-10 | 2023-08-15 | 深圳华芯信息技术股份有限公司 | 基于唤醒通道的mqtt主题订阅系统、方法、终端及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108683653B (zh) | 2021-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108683653A (zh) | 一种基于WebSocket的主动式消息推送系统 | |
WO2019205907A1 (zh) | 一种基于mqtt消息协议的智能设备通讯平台 | |
CN104836723B (zh) | 基于mqtt主题订阅机制的通信方法以及接入网关 | |
CN102546794B (zh) | 浏览器客户端与后端服务器直通的方法、网关和通信系统 | |
CN103001860A (zh) | 一种融合通信Web即时消息实现系统 | |
CN105610888A (zh) | 基于安卓的利用socket推送消息的方法和系统 | |
CN109327513B (zh) | 交互方法、装置及计算机可读存储介质 | |
CN106817341B (zh) | 一种面向移动互联网的sip协议节流传输系统及方法 | |
CN102546646B (zh) | 一种实现语音对讲功能的系统及方法 | |
CN101778053A (zh) | 即时通讯工具互通方法及装置 | |
CN103095684A (zh) | 获取关注用户聚合信息的方法、装置及系统 | |
CN100490447C (zh) | 实现信息传送业务的方法和系统以及一种终端 | |
CN102664899A (zh) | 一种业务处理方法、装置及系统 | |
CN113162989A (zh) | 一种基于MQTT-WebSocket的消息收发方法 | |
CN103548315A (zh) | 用于高性能低等待时间实时通知递送的方法和装置 | |
CN203504603U (zh) | 移动互联网语音社区的服务器架构 | |
CN103516788A (zh) | 一种数据推送方法及其Flash客户端和服务器 | |
CN101599921A (zh) | 一种企业即时通信系统及其文件传输方法 | |
CN106230915B (zh) | 一种实现功能机智能通信的方法 | |
CN101557354A (zh) | 一种在在线客服中发送图片的方法 | |
CN103139713B (zh) | 一种基于局域广播的无线多媒体漂流瓶系统及方法 | |
CN105515947B (zh) | 一种基于xmpp的异构终端消息互通的方法、服务器及系统 | |
CN103533001A (zh) | 基于http多重代理的通信方法和系统、中间代理服务器 | |
CN111669716B (zh) | 一种网络对讲机的通信方法及通信系统 | |
JP2011517796A (ja) | マルチメディアメッセージ保存アドレス送信システム及び方法 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20211210 |
|
CF01 | Termination of patent right due to non-payment of annual fee |