CN107566492A - 一种web端消息推送的实现方法 - Google Patents
一种web端消息推送的实现方法 Download PDFInfo
- Publication number
- CN107566492A CN107566492A CN201710792312.4A CN201710792312A CN107566492A CN 107566492 A CN107566492 A CN 107566492A CN 201710792312 A CN201710792312 A CN 201710792312A CN 107566492 A CN107566492 A CN 107566492A
- Authority
- CN
- China
- Prior art keywords
- server
- client
- push
- message
- implementation method
- 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.)
- Pending
Links
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种web端消息推送的实现方法,包括:步骤S1,在服务器建立第三方服务器推送模块,并修改第三方服务器推送模块的配置,用于使用第三方服务器推送模块来搭建服务器的主动推送服务;步骤S2,修改客户端的配置,采用AJAX技术,以便客户端与服务器之间建立长连接,并接受服务器推送过来的消息;步骤S3,服务器接收消息后,主动向客户端程序推送数据,客户端接收数据后对接收到推送数据进行处理;步骤S4,由客户端显示服务器推送过来的数据。本发明使得服务器能够与多个客户端(PC端、平板电脑、移动终端等)建立双向连接,进行服务器与多个客户端,以及多个客户端之间的消息推送,解决基于web通用性推送需求的技术问题。
Description
技术领域
本发明涉及一种互联网客户端的信息推送方法,更具体的说,涉及一种web端消息推送的实现方法。
背景技术
消息推送,就是在互联网上通过定期传送用户需要的信息来减少信息过载的一项新技术。推送技术通过自动传送信息给用户,来减少用于网络上搜索的时间。它根据用户的兴趣来搜索、过滤信息,并将其定期推给用户,帮助用户高效率地发掘有价值的信息,当我们开发需要和服务器交互的移动应用时,基本上都需要和服务器进行交互,包括上传数据到服务器,同时从服务器上获取数据。
一般情况下,客户端与服务器之间通讯客户端是主动的,但这就存在一个问题就是一旦服务器数据有更新或者服务器要下发通知给客户端只能等客户端连接的时候才能实现。这种方式使消息失去了实时性。如何使客户端能够实时的收到服务器的消息和通知,总体来说有两种方式,第一种是客户端使用Pull(拉)的方式,就是隔一段时间就去服务器上获取一下信息,看是否有更新的信息出现。第二种就是服务器使用Push(推送)的方式,当服务器有新信息了,则把最新的信息Push到客户端上。这样,客户端就能自动的接收到消息。
目前消息推送在移动互联网上应用比较广泛,移动端的消息推送方式IOS和安卓实现方式不同,下面分别介绍一下。IOS消息推送机制可以分为三个阶段:第一阶段:应用程序把要发送的消息、目的iPhone的标识打包,发给APNS。第二阶段:APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并把消息发送到iPhone。第三阶段:iPhone把发来的消息传递给相应的应用程序,并且按照设定弹出Push通知。安卓消息推送机制通过:1.C2DM云端推送方案,在Android手机平台上,Google提供了C2DM(CloudtoDevice Messaging)服务。由于国内的网络环境,这个服务经常不可用。2.MQTT协议实现Android推送,采用MQTT协议实现Android推送功能也是一种解决方案。MQTT是一个轻量级的消息发布/订阅协议,它是实现基于手机客户端的消息推送服务器的理想解决方案。3.RSMB实现推送功能,Really Small Message Broker(RSMB),是一个简单的MQTT代理4.XMPP协议实现Android推送,XMPP(可扩展通讯和表示协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线探测。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息。5.使用第三方平台,目前国内、国外有一些推送平台可供使用,这里就不举例了。
IOS的推送方案包括有:1、应用程序注册消息推送。2、iOS从APNS Server获取device token,应用程序接收device token。3、应用程序将device token发送给PUSH服务端程序。4、服务端程序向APNS服务发送消息。5、APNS服务将消息发送给iPhone应用程序。安卓现有推送方法要比IOS复杂的多,服务端和客户端都需要实现。Android消息推送方案包括有:由服务端部分和客户端部分组成。服务端和客户端通过固定协议进行交互,现在广泛使用的是XMPP协议。服务端负责Android客户端间的连接管理、消息通讯和接收应用系统、客户端应用的命令,向应用系统发送接收到的通知消息。消息推送客户端负责和服务端建立链接,接受服务端消息和发送消息到服务端,接受客户端应用的指令,向客户端应用发送收到的服务端消息。在用于大规模移动端消息推送是比较适用的。
发明内容
本发明的技术目的是克服现有技术中的互联网客户端的信息推送方案对于一些规模小的消息推送应用采用现有技术方案对基于web的多端(PC、平板、手机等)也不太适用,不能满足基于web通用性推送需求的技术问题,提供一种适用多种客户端而且实施起来简单便捷而可靠稳定的web端消息推送的实现方法。
为实现以上技术目的,本发明的技术方案提供一种web端消息推送的实现方法,包括以下步骤:
步骤S1,在服务器建立第三方服务器推送模块,并修改第三方服务器推送模块的配置,建立与客户端相匹配的服务器匹配处理项,用于使用第三方服务器推送模块来搭建服务器的主动推送服务;
其中,第三方服务器推送模块用于将服务器接收的消息,主动以异步的方式向客户端推送数据,而不需要客户端主动发出请求;
步骤S2,修改客户端的配置,并建立与服务器匹配的客户端关键配置项,采用AJAX技术,以便客户端与服务器之间建立长连接,并接受服务器推送过来的消息;
步骤S3,服务器接收消息后,主动向客户端程序推送数据,客户端接收数据后对接收到推送数据进行处理;
步骤S4,由客户端显示服务器推送过来的数据。
进一步的,在步骤S1中,服务器内还设有服务器消息发送和管理程序,用于过滤和处理接收到的消息。
进一步的,在步骤S1中,第三方服务器推送模块采用nginx开发的push-stream-module模块。
进一步的,push-stream-module模块的配置修改过程如下:
第一步,在服务器安装带有push-stream-module模块的nginx服务器软件;
第二步,修改nginx主配置文件nginx.conf,在nginx默认配置文件目录下新建一个文件;
第三步,再次修改nginx主配置文件nginx.conf,在默认虚拟主机内添加新的与客户端相匹配的服务器匹配处理项;
第四步,重启服务器。
进一步的,在步骤S2中,修改客户端的配置的过程如下:
第一步:在客户端程序内新建一个静态html文件,并新建一个div标签样式配置成不可见;
第二步:在上一步所建的div标签中新建一个iframe标签,src属性指向一个长连接的请求,用于保持和服务器建立长连接和接受服务器推送过来的消息;
第三步:在header标签中新建一个script标签,添加与服务器匹配的客户端关键配置项;
第四步:在客户端程序内新建另一个div标签,用于显示服务器推送过来的消息。
进一步的,在步骤S2中,客户端通过AJAX与服务器建立连接通道,并向服务器发出请求,去发现服务器的变化,接收服务器的推送数据。
进一步的,在步骤S3中,客户端采用JavaScript消息回调函数对接收到推送数据进行处理。
进一步的,服务器与多个客户端建立双向连接,向多个客户端推送数据。
进一步的,每个客户端通过服务器向其他客户端推送数据。
进一步的,客户端至少包括移动终端、PC端、平板电脑。
本发明的服务器采用广泛使用的服务器软件nginx,客户端采用普通网页浏览器,通过JavaScript+HTML编程进行配置,使得服务器能够与多个客户端(PC端、平板电脑、移动终端等)建立双向连接,进行服务器与多个客户端,以及多个客户端之间的消息推送,解决基于web通用性推送需求的技术问题。
本发明还采用AJAX技术代替iframe保持和服务器建立的长连接,其效果更好,同时更容易处理链接断开的问题。
本发明还可以用于基于web的多端(移动终端、PC、平板电脑等)办公软件消息推送、基于web的聊天系统等,实现简单,兼容性强;还可以用于多屏互动,比如手机扫描登录等。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
图1是本发明的web端消息推送的实现方法流程图;
图2是本发明的服务器与多个客户端建立双向连接示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
本发明的技术方案是提供一种web端消息推送的实现方法,如图1所示,包括以下步骤:
步骤S1,在服务器建立第三方服务器推送模块,并修改第三方服务器推送模块的配置,建立与客户端相匹配的服务器匹配处理项,用于使用第三方服务器推送模块来搭建服务器的主动推送服务。
其中,服务器内还设有服务器消息发送和管理程序,用于过滤和处理接收到的消息。
具体的,第三方服务器推送模块采用nginx开发的push-stream-module模块,用于将服务器接收的消息,主动以异步的方式向客户端推送数据,而不需要客户端主动发出请求;
push-stream-module模块的配置修改过程如下:
第一步,在服务器安装带有push-stream-module模块的nginx服务器软件;
第二步,修改nginx主配置文件nginx.conf,在http{下面一行添加如下一行:“include push-stream-module.conf;”;在nginx默认配置文件目录下新建一个文件命名为:push-stream-module.conf,并且添加如下内容:
第三步,再次修改nginx主配置文件nginx.conf,在默认虚拟主机server{}内添加新的与客户端相匹配的服务器匹配处理项,即location匹配处理项;
第四步,重启服务器。
步骤S2,修改客户端的配置,并建立与服务器匹配的客户端关键配置项,采用AJAX技术,以便客户端与服务器之间建立长连接,并接受服务器推送过来的消息。
AJAX指异步JavaScript及XML(Asynchronous JavaScript And XML),源自从基于Web的应用到基于数据的应用的转换。AJAX的核心是JavaScript对象XmlHttpRequest。该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。客户端通过AJAX与服务器建立连接通道,并向服务器发出请求,去发现服务器的变化,接收服务器的推送数据。
修改客户端的配置的过程如下:
第一步:在客户端程序内新建一个静态html文件,并新建一个div标签样式配置成不可见;
第二步:在上一步所建的div标签中新建一个iframe标签,src属性指向一个长连接的请求,即/sub/demo_channel,用于保持和服务器建立长连接和接受服务器推送过来的消息;
第三步:在header标签中新建一个script标签,添加与服务器匹配的客户端关键配置项:push_stream_message_template对应的JavaScript消息回调函数function push(id,channel,text,event_id,time,tag){}。
第四步:在客户端程序内新建另一个div标签,用于显示服务器推送过来的消息。页面示例代码如下:
步骤S3,服务器接收消息后,主动向客户端程序推送数据,客户端接收数据后对接收到推送数据进行处理;其中,客户端采用JavaScript消息回调函数对接收到推送数据进行处理。
步骤S4,由客户端显示服务器推送过来的数据。
此外,服务器与多个客户端建立双向连接,向多个客户端推送数据。每个客户端通过服务器可向其他客户端推送数据。客户端至少包括移动终端、PC端、平板电脑。即移动终端、PC端、平板电脑可通过服务器实现三者之间的消息推送,如图2所示。
服务器只需要将消息提交到客户端订阅的topic(demo_channel)就可以实现推送消息到各个客户端。
Curl示例:curl-d hello http://192.168.5.128/pub?id=demo_channel。一个完整的php服务器销售发送示例如下:
本发明的服务器采用广泛使用的服务器软件nginx,客户端采用普通网页浏览器,通过JavaScript+HTML编程进行配置,使得服务器能够与多个客户端(PC端、平板电脑、移动终端等)建立双向连接,进行服务器与多个客户端,以及多个客户端之间的消息推送,解决基于web通用性推送需求的技术问题。
本发明还采用AJAX技术代替iframe保持和服务器建立的长连接,其效果更好,同时更容易处理链接断开的问题。
本发明还可以用于基于web的多端(移动终端、PC、平板电脑等)办公软件消息推送、基于web的聊天系统等,实现简单,兼容性强;还可以用于多屏互动,比如手机扫描登录等。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。本发明的范围由所附权利要求极其等同限定。
Claims (10)
1.一种web端消息推送的实现方法,其特征在于:包括以下步骤:
步骤S1,在服务器建立第三方服务器推送模块,并修改第三方服务器推送模块的配置,建立与客户端相匹配的服务器匹配处理项,用于使用第三方服务器推送模块来搭建服务器的主动推送服务;
其中,第三方服务器推送模块用于将服务器接收的消息,主动以异步的方式向客户端推送数据,而不需要客户端主动发出请求;
步骤S2,修改客户端的配置,并建立与服务器匹配的客户端关键配置项,采用AJAX技术,以便客户端与服务器之间建立长连接,并接受服务器推送过来的消息;
步骤S3,服务器接收消息后,主动向客户端程序推送数据,客户端接收数据后对接收到推送数据进行处理;
步骤S4,由客户端显示服务器推送过来的数据。
2.如权利要求1所述的web端消息推送的实现方法,其特征在于:在步骤S1中,服务器内还设有服务器消息发送和管理程序,用于过滤和处理接收到的消息。
3.如权利要求1所述的web端消息推送的实现方法,其特征在于:在步骤S1中,第三方服务器推送模块采用nginx开发的push-stream-module模块。
4.如权利要求3所述的web端消息推送的实现方法,其特征在于:push-stream-module模块的配置修改过程如下:
第一步,在服务器安装带有push-stream-module模块的nginx服务器软件;
第二步,修改nginx主配置文件nginx.conf,在nginx默认配置文件目录下新建一个文件;
第三步,再次修改nginx主配置文件nginx.conf,在默认虚拟主机内添加新的与客户端相匹配的服务器匹配处理项;
第四步,重启服务器。
5.如权利要求1所述的web端消息推送的实现方法,其特征在于:在步骤S2中,修改客户端的配置的过程如下:
第一步:在客户端程序内新建一个静态html文件,并新建一个div标签样式配置成不可见;
第二步:在上一步所建的div标签中新建一个iframe标签,src属性指向一个长连接的请求,用于保持和服务器建立长连接和接受服务器推送过来的消息;
第三步:在header标签中新建一个script标签,添加与服务器匹配的客户端关键配置项;
第四步:在客户端程序内新建另一个div标签,用于显示服务器推送过来的消息。
6.如权利要求1所述的web端消息推送的实现方法,其特征在于:在步骤S2中,客户端通过AJAX与服务器建立连接通道,并向服务器发出请求,去发现服务器的变化,接收服务器的推送数据。
7.如权利要求1所述的web端消息推送的实现方法,其特征在于:在步骤S3中,客户端采用JavaScript消息回调函数对接收到推送数据进行处理。
8.如权利要求1所述的web端消息推送的实现方法,其特征在于:服务器与多个客户端建立双向连接,向多个客户端推送数据。
9.如权利要求8所述的web端消息推送的实现方法,其特征在于:每个客户端通过服务器向其他客户端推送数据。
10.如权利要求8或9所述的web端消息推送的实现方法,其特征在于:客户端至少包括移动终端、PC端、平板电脑。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710792312.4A CN107566492A (zh) | 2017-09-05 | 2017-09-05 | 一种web端消息推送的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710792312.4A CN107566492A (zh) | 2017-09-05 | 2017-09-05 | 一种web端消息推送的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107566492A true CN107566492A (zh) | 2018-01-09 |
Family
ID=60979070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710792312.4A Pending CN107566492A (zh) | 2017-09-05 | 2017-09-05 | 一种web端消息推送的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107566492A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109166352A (zh) * | 2018-10-31 | 2019-01-08 | 重庆惠家通信息技术有限公司 | 云停车场管理系统 |
CN109600444A (zh) * | 2018-12-14 | 2019-04-09 | 北京向上心科技有限公司 | 数据推送方法、服务器、终端、电子设备及可读存储介质 |
CN111061539A (zh) * | 2019-11-26 | 2020-04-24 | 广州探途网络技术有限公司 | 一种模拟浏览器自动执行操作的系统及方法 |
CN113542324A (zh) * | 2020-04-17 | 2021-10-22 | 北京京东振世信息技术有限公司 | 一种消息推送方法和装置 |
CN115174505A (zh) * | 2022-06-29 | 2022-10-11 | 中航机载系统共性技术有限公司 | 一种企业即时消息发布系统及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103607423A (zh) * | 2013-10-23 | 2014-02-26 | 深圳海联讯科技股份有限公司 | 一种基于WebSocket协议的分布式广播系统 |
US20140258409A1 (en) * | 2013-01-30 | 2014-09-11 | Tencent Technology (Shenzhen) Company Limited | Method, server and browser for pushing message actively |
CN106209966A (zh) * | 2016-06-15 | 2016-12-07 | 中国科学院信息工程研究所 | 管控端更新设备状态的方法、服务端的处理方法和装置 |
-
2017
- 2017-09-05 CN CN201710792312.4A patent/CN107566492A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140258409A1 (en) * | 2013-01-30 | 2014-09-11 | Tencent Technology (Shenzhen) Company Limited | Method, server and browser for pushing message actively |
CN103607423A (zh) * | 2013-10-23 | 2014-02-26 | 深圳海联讯科技股份有限公司 | 一种基于WebSocket协议的分布式广播系统 |
CN106209966A (zh) * | 2016-06-15 | 2016-12-07 | 中国科学院信息工程研究所 | 管控端更新设备状态的方法、服务端的处理方法和装置 |
Non-Patent Citations (1)
Title |
---|
Q0126A: "利用nginx_push_stream_module实现服务器消息推送", 《URL:HTTPS://BLOG.CSDN.NET/Q0126A/ARTICLE/DETAILS/84442279》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109166352A (zh) * | 2018-10-31 | 2019-01-08 | 重庆惠家通信息技术有限公司 | 云停车场管理系统 |
CN109600444A (zh) * | 2018-12-14 | 2019-04-09 | 北京向上心科技有限公司 | 数据推送方法、服务器、终端、电子设备及可读存储介质 |
CN111061539A (zh) * | 2019-11-26 | 2020-04-24 | 广州探途网络技术有限公司 | 一种模拟浏览器自动执行操作的系统及方法 |
CN111061539B (zh) * | 2019-11-26 | 2024-01-09 | 广州探途网络技术有限公司 | 一种模拟浏览器自动执行操作的系统及方法 |
CN113542324A (zh) * | 2020-04-17 | 2021-10-22 | 北京京东振世信息技术有限公司 | 一种消息推送方法和装置 |
CN115174505A (zh) * | 2022-06-29 | 2022-10-11 | 中航机载系统共性技术有限公司 | 一种企业即时消息发布系统及方法 |
CN115174505B (zh) * | 2022-06-29 | 2024-04-23 | 中航机载系统共性技术有限公司 | 一种企业即时消息发布系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107566492A (zh) | 一种web端消息推送的实现方法 | |
CN109040326A (zh) | 推送消息的方法和装置 | |
CN101355529B (zh) | 向即时通讯联系人发送电子邮件的方法、系统和客户端 | |
CN103841004B (zh) | 信息显示方法及信息服务器 | |
CN101551821A (zh) | 一种在网页中进行实时信息广播的方法 | |
US20140223333A1 (en) | Deferred, on-demand loading of user presence within a real-time collaborative service | |
EP3451657B1 (en) | Video conference system, application server, device, video conference method, and non-transitory computer readable medium storing video conference program | |
WO2012000228A1 (zh) | 一种通用的网页上实现群组通讯的方法 | |
CN105430317B (zh) | 一种视频背景设置方法及终端设备 | |
CN101977209A (zh) | 一种网页上实现翻页同步的方法 | |
CN108683653A (zh) | 一种基于WebSocket的主动式消息推送系统 | |
CN112269770B (zh) | 文档共享方法、装置、系统和电子设备 | |
CN105704001A (zh) | 一种微信服务器消息分发方法及系统 | |
CN109450907A (zh) | 基于websocket的通信系统搭建方法及装置 | |
CN112347401A (zh) | 房屋同屏带看方法、系统、装置及计算机可读存储介质 | |
CN107786415A (zh) | 一种业务处理方法及相关设备与系统 | |
CN103036762B (zh) | 即时通信中的信息处理方法和装置 | |
US20150079959A1 (en) | Smart Microphone | |
CN106488269A (zh) | 基于第三方应用平台实现对电视设备控制的系统及方法 | |
CN101583098A (zh) | 手机博客系统及应用 | |
CN107332846A (zh) | 视频播出方法及系统 | |
CN101296367B (zh) | 视音频互动方法和系统 | |
CN104283762A (zh) | 传输即时通讯会话内容的方法、系统、客户端及服务器 | |
TWM511072U (zh) | 雲端推播服務系統 | |
CN101581984A (zh) | 基于远程跨网的虚拟鼠标引导的设备和方法 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180109 |
|
WD01 | Invention patent application deemed withdrawn after publication |