1 引言
基于 web 的网络管理是web 功能和网管技术的结合。对用户来说,因为只要能上网就可以通过浏览器接入网络管理软件,同时网页的界面组件和网页的基本操作都为用户所熟悉所以深受用户欢迎。对开发和部署人员来说因为只需要维护部署服务器端,这样就可以集中开发维护和升级。所以基于web 的网络管理成为一大发展趋势。但是由于web 网络管理系统中,浏览器客户端与服务器之间的采用http 协议这样同步的请求/应答通信方式,一次请求应答之后浏览器与服务之间就失去的连接,浏览器只能取得请求时刻服务器的数据状态,不能满足实时告警、实时性能数据监控这样的需求。
针对这个问题最简单的解决方式就是设置页面的refresh 属性,设定刷性周期之后自动的由浏览器自定重新请求整个页面,这种方式虽然每次都重新请求整个页面而大部分情况实时更改了很小的一个界面元素,效率低下。而且真实的网络情况不确定,这个刷新周期也不好确定,设置的太短浪费带宽,设置的太长又缺乏实时性。在网页中嵌入applet 方式[1]中applet不能与网页中其他的元素有效的互动同时需要在客户机中安装JAVA 运行环境,Flex[2]方式具有丰富的界面元素但是需要在浏览器安装插件,有可能存在安全隐患。而且上述两种方式都采用了http 以外的协议收到防火墙的限制。
本文采用 AJAX 与Servlet 设计的push 模式,运用浏览器内置支持的异步请求对象和脚本处理引擎来处理与服务器的通信,不需要安装任何插件,采用纯http 协议能顺利穿越防火墙。只在服务采集到数据时才向浏览器发送数据,并且只针对需要更新的网页组件发送少量的数据具有很高的效率。
2 Web push 技术介绍
Web Push 技术又称comet 技术是为了解决浏览器与服务器的一次请求应答结束后,浏览器与服务器失去了的联系不能保持连接的问题而发展起来的一种技术。是对浏览器端JavaScript、文档模型DOM、CSS、内置异步请求对象XmlHttpRequest 对象或者隐藏帧IFrame的综合应用,并且需要相应的服务器技术的配合。因为服务器只需要把用户感兴趣的事件发送到浏览器端,所以采用的是订阅/发布的通信方式。采用这种技术之后在浏览器与服务器之间建立了一条数据传输通道,服务器可以及时的将信息推送到浏览器端,并通过JavaScript函数操作浏览器文档模型,更改文档CSS 显示属性动态更改界面,及时反映服务器数据的变化。
2.1 两种push 机制
Push 机制有两种具体的实现方式,一种是基于AJAX 的长轮询,一种是基于IFrame 的长连接[3].
2.1.1 基于AJAX 的长轮询
AJAX 即"Asynchronous JavaScript and XML"(异步JavaScript 和XML)是指一种创建交互式网页应用的技术。基于AJAX 的push 本质上是通过XMLHttpRequest 对象将信息从服务器端拉回来因为不需要人的参与所以表现为服务器主动推送的效果。
XMLHttpRequest 发出异步请求后,服务器会阻塞请求直到有数据传递或超时才返回。
客户端 JavaScript 响应处理函数处理信息更改显示界面,再次发出请求形成一个数据循环来建立通道。
2.1.2 基于IFrame 的长连接
IFrame 是很早就存在的一种 HTML 标记, 通过在 HTML 页面里嵌入一个隐
分享到:
相关推荐
为了解决Web网络管理中的实时性问题,Push技术应运而生。Push技术允许服务器主动将数据推送到客户端,而不需要客户端不断地请求。WebPush技术(又称Comet技术)是Push技术在Web环境中的应用,它通过浏览器端...
Java-Push开源实时消息推送系统是一种基于Java技术构建的、专为实现高效、稳定、实时的消息推送服务而设计的解决方案。在当今互联网应用中,实时消息推送已经成为提高用户体验和互动性的重要工具,尤其是在社交网络...
WAP Push技术是一种在无线应用协议(WAP)框架下,用于向移动设备发送数据的服务。这个技术允许服务器端将消息、铃声、图片、应用程序等推送到支持WAP的手机上,用户无需主动请求就能接收到信息。在Java环境下实现...
标题"PyPI 官网下载 | django-webpush-0.3.2.tar.gz"指的是从Python的官方包管理器PyPI上下载的名为`django-webpush`的版本为0.3.2的软件包,其打包格式为tar.gz。描述中的"资源全名:django-webpush-0.3.2.tar.gz...
Grails是一个基于Groovy语言的开源Web应用框架,它简化了Java开发,提供了MVC架构、自动化工具和丰富的插件系统。将CometD集成到Grails中,开发者可以轻松实现高效、可扩展的实时Web应用。 1. **集成CometD到Grails...
总之,ASP.NET (C#) ServerPush是构建实时Web应用的关键技术,它利用多种底层传输机制实现服务器到客户端的数据实时推送,极大地提升了用户体验。掌握这些知识点对于开发高效、实时的Web应用程序至关重要。
学会基本的git命令(如clone、add、commit、push、pull、branch、merge等)以及GitHub或GitLab的使用,能够帮助开发者有效管理代码和项目历史。 7. **Web开发框架**:PHP有众多优秀的框架,如Laravel、Symfony、...
Comet技术是一种基于HTTP长连接的Web实时通信技术,它允许服务器向客户端主动推送数据,而无需客户端发起新的请求。这种技术打破了传统的HTTP请求-响应模型,极大地提升了Web应用的实时性和交互性,尤其适用于股票...
本文提出了一种基于J2ME的短消息管理系统设计方案,该方案充分利用了J2ME平台的强大功能,结合PUSH机制和MVC架构等技术,实现了高效、实用的短信管理功能。这对于提高用户的移动通信体验、促进移动应用的发展具有...
"ServerPush聊天室"是一种基于DWR(Direct Web Remoting)技术实现的实时通信系统,主要特点是能够实现实时的点对点聊天功能。在这个系统中,服务器主动将信息推送至客户端,而不是传统的客户端发起请求获取数据的...
- 设置和配置Web Push服务,如订阅和管理用户的推送通知权限。 - 处理推送通知的注册和退订流程。 - 提供模板标签和过滤器,以便在前端界面中轻松添加必要的PWA元数据。 - 提供后端接口,用于发送和管理推送通知。 -...
Java Web前台技术是Web应用程序开发中的重要组成部分,主要关注用户界面的设计、交互和用户体验。这份“Java Web前台技术”资料集全面涵盖了与之相关的多个关键知识点,旨在帮助开发者提升技能和效率。 一、HTML...
随着Web开发的复杂度提升,前端框架如React、Vue、Angular等应运而生,它们提供了一种更高效的方式来组织和管理代码。例如,React使用组件化思想构建UI,Vue则以其易学易用受到欢迎,Angular提供了完整的解决方案。...
标题中的“Flex与Java Server Push数据”涉及到的技术是基于Adobe Flex客户端和Java服务器端的数据实时推送技术。在Web开发中,传统的HTTP协议是基于请求-响应模型的,但这种模式无法实现服务器主动向客户端推送数据...
1. Thinkphp框架:Thinkphp是一个基于PHP的开源MVC框架,适用于快速开发Web应用。其V2版本虽然相对较旧,但仍然具有良好的稳定性和广泛的社区支持。 2. RestAPI V2:Restful API设计风格强调资源导向,使用HTTP动词...
标题中的“autopush”指的是一个基于Python的Web Push服务,主要被Mozilla用于其产品中,以实现即时消息推送功能。Web Push技术允许网站在用户不打开浏览器或网站的情况下,向用户的设备发送通知,极大地提升了用户...
在Laravel框架中,"push"一词通常与消息推送服务相关,这涉及到实时通信、通知功能以及后台任务处理。Laravel提供了多种方法来实现这些功能,如使用Broadcasting(广播)、Queue(队列)以及第三方库如Pusher或...
【描述】:“基于WEB程序设计基础-浙江大学(7)”这门课程是浙江大学开设的一门关于Web应用程序开发的基础课程,主要面向初学者,旨在教授如何利用现代Web技术进行交互式网页和应用程序的构建。课程可能涵盖HTML、CSS...