WEB通信交互的几种方式 - 实时通信发展过程简介
简单介绍一下现在的WEB通信有以下几种方式:最基本的http请求方式,Ajax轮询,Ajax长轮询,HTML5推送事件,HTML5的WebSocket。
最基本的http请求方式:
-
客户端向服务器端发起一个请求
-
服务器端接收到请求后会在服务器端进行业务逻辑处理运算
-
服务器端返回结果到客户端
一个很实在的例子就是当你打开这个页面是,浏览器根据网址向网站服务器发送请求,服务器端返回这个页面的内容,然后你开始浏览这篇文章,在你阅读这 篇文章的时候服务器端,如果作者更新了这篇文章,你不重新F5刷新页面,那你是不知道这篇文章已经被更新了的,而且刷新一个页面所耗费的资源是比较多的。 这是比较原始的一直更新内容的方式,当然像这样的技术文章也不需要实现实时的更新。
AJAX 轮询:
-
客户端向服务器端发起请求,和上面最基本的请求原理是一样
-
不同的是请求方式是通过Ajax实现,设定一定的间隔时间对服务器发送请求(比如0.5 秒)
-
服务器端返回结果到客户端
这种方式的区别是其实就是在于Ajax异步调用和设置间隔时间,根据间隔时间请求服务器端,但是这个间隔时间到底该设多少,这个不好定。太长可能信息更新不及时,太短可能服务器鸭梨山大,浪费资源。
AJAX 长轮询:
-
客户端向服务器端发起请求,和上面最基本的请求原理是一样
-
还是通过Ajax异步通信,设定一定的间隔时间对服务器发送请求
-
服务器端在收到客户端请求后,不是马上对客户端响应查询结果,保持连接,不断的在服务器端调客户端请求的那个查询业务,直到查到新的信息
-
一点查询到新信息,服务器端立即返回结果给客户端,断开与客户端的连接
-
客户端收到新的信息后,会再次向服务器端发出请求
这种方式的有点大家也看到了,能减少客服端和服务器端连接/断开的频率,但是服务器端要维护长连接也需要耗费相应的资源。对轮询和长轮询的更多介绍,大家可以参考Long Polling (长轮询) 原理及PHP代码的实现
HTML5 Server Sent Events (SSE) / EventSource:
-
客户端向服务器端发起请求,和上面最基本的请求原理是一样
-
在浏览器端JavaScript 使用的 EventSource 对象发送请求和服务器端建立连接,服务器端的响应的内容类型是“text/event-stream”
-
一旦服务器端有新的信息就会推送到客户端
相对来说是实现了实时信息更新(服务器端到客户端),但是服务器端需要实现对服务器端事件的轮询。具体SSE例子,请查看http://www.ibm.com/developerworks/cn/web/1307_chengfu_serversentevent/
HTML5 Websockets:
-
客户端向服务器端发起请求,和上面最基本的请求原理是一样
-
在浏览器端JavaScript使用的 WebSocket对象和服务器端建立连接
-
一旦连接建立,服务器端和客户端可以相互交互数据,而不是单纯的服务端向客户端发送信息
WebSocket是HTML5新引入的技术,允许后台随时向前端发送文本或者二进制消息,WebSocket是一种全新的协议,不属于http无 状态协议,协议名为”ws”,这意味着ws不是http,所以传统的web服务器不一定支持,需要服务器与浏览器同时支持, WebSocket才能正常运行,目前的支持还不普遍,需要特别的web服务器和目前比较新的浏览器。关于WebSocket的例子大家可以参考 Tomcat提供的Example,下载Tomcat7以上版本,运行服务器,然后就可以在http://localhost:8080 /examples/websocket/drawboard.xhtml上面实现多人绘画,大家都能及时的看到画板的更新。
Comet:
Comet 是一种新的Web 应用架构。基于这种架构开发的应用中,服务器端会主动以异步的方式向客户端程序推送数据,而不需要客户端显式的发出请求。Comet 架构非常适合事件驱动的 Web 应用,以及对交互性和实时性要求很强的应用,如股票交易行情分析、聊天室和 Web 版在线游戏等。它的主要不同之处就在于它会客户端保持一种长连接状态,直到消息被传递后才释放。其实到这里这才是真正的算得上实时通讯了。更多信息请查看 APE框架,http://ape-project.org/
相关推荐
本文将详细介绍三种常见的Android与JavaScript交互的方式,帮助开发者更好地掌握这种跨平台的数据通信。 一、WebView注入JavaScript接口 Android中的WebView组件可以加载网页内容,同时它提供了与JavaScript交互的...
在Android与Web端交互的过程中,通常会涉及以下几个关键步骤: 1. 创建网络请求:根据业务需求选择合适的HTTP请求类型,构建请求URL,配置请求头(如Content-Type、Authorization等)。 2. 数据序列化:如果需要...
在.NET Framework中,实现Webform与Winform交互主要依靠以下几种技术: 1. **Web服务(Web Service)**:Web服务是一种基于HTTP协议的通信方式,它可以暴露特定功能供其他应用调用。在Winform中,可以创建一个Web...
总之,"WINFORM与WEB的直接交互.rar"资源提供了一种绕过Web Service实现WinForm与Web服务通信的方法,这对于学习和实践中理解网络通信和C#的使用非常有价值。开发者可以根据`form.cs`和`INSWEB.cs`的代码来学习如何...
在IT行业中,进程内交互是指两个或多个程序组件在同一操作系统进程中进行通信的一种方式。这个话题主要涉及了Delphi编程环境,以及如何实现WinForm(Windows桌面应用程序)与Web应用程序之间的交互。Delphi是一款...
在PB 11.5中,有几种方法可以实现对Web服务的调用,以下将详细介绍这些方法。 1. **SOAP Toolkit**: PB 11.5包含了对SOAP(简单对象访问协议)的支持,通过使用SOAP Toolkit,开发者可以直接在PB中创建、调用和...
在"web点对点通信代码"这个项目中,我们可以预见到它提供了一种解决方案,使得用户可以在Web界面上实现局域网或互联网上的P2P通信。这意味着用户可以通过浏览器与其他用户进行直接的数据交换,无需经过中央服务器。...
WebService是Web应用程序之间的一种通信标准,它允许不同的系统通过网络交换数据和服务。本文将深入探讨在Java环境中调用WebService的五种主要方式:Axis、CXF、HttpClient、MyEclipse反向生成以及XFire。 1. Axis...
通过阅读《Applet与Servlet之间的通信与交互》系列文档,我们可以深入理解这两种技术的协作机制,从而更好地设计和实现动态Web应用。文档中的实例代码和解释可以帮助开发者掌握具体的实现细节,提升开发效率。同时,...
在C#中,可以通过以下几种方式调用WebService: 1. **使用WSDL生成代理类**: - 在客户端项目中,使用“添加服务引用”功能,通过提供WebService的WSDL地址(通常是`...
局域网内Web QQ通信工具的设计思路可能基于以下几点: 1. **本地代理**:由于QQ通常需要连接到腾讯的服务器进行通信,此工具可能创建了一个本地代理服务器,该服务器在局域网内接收并转发用户的QQ消息。通过这种...
本篇文章将详细探讨标题"delphi 跟网站的多种交互方式"所涵盖的知识点,以及描述中提到的几种主要技术,包括POST、GET、XMLHTTP和Wininet,并涉及WebBrowser组件以及Servlet的概念。 1. **POST请求**:POST是HTTP...
### 应用系统之间的几种数据传输方式 #### 一、数据传输方式概述 随着SOA(面向服务架构)的普及,应用系统之间的交互越来越频繁。为了确保这些交互能够高效、安全地进行,需要选择合适的数据传输方式。本文将详细...
本教程将深入探讨如何在Eclipse集成开发环境中部署Web项目到Tomcat服务器,并讲解JSON数据在Web通信中的原理和使用过程。 首先,我们来了解Eclipse部署Web项目到Tomcat的步骤。Eclipse是一款广泛使用的Java开发工具...
在Java程序与PLC通信的过程中,通常采用以下几种通信协议: 1. **OPC (OLE for Process Control)**:这是最常用的方式,它提供了一个标准接口,使得Java可以通过OPC服务器与PLC进行数据交换。Java中有很多开源的OPC...
以上就是关于WinForm与WebForm通信的几种常见方法,每种方法都有其特定的应用场景和实现细节。具体实施时,还需要考虑数据加密、身份验证、错误处理等因素,以确保通信的安全和稳定。在开发过程中,应遵循最佳实践,...
在Android平台上进行网络通信是应用程序开发中的重要组成部分,因为大多数现代应用都需要与远程服务器进行交互,获取或发送数据。Android提供了多种方式来实现这一目标,包括基础的Java网络API、特定于Android的网络...
### 基于Web访问Oracle数据库的几种方法 在当今数字化时代,Web访问数据库成为企业和组织数据管理和交互的重要方式之一。Oracle数据库以其卓越的性能、安全性以及广泛的兼容性,在众多数据库系统中脱颖而出,尤其受...
这种技术的核心思想是通过HTTP协议,Web浏览器与Web服务器进行交互,服务器再通过CGI程序与数据库服务器进行通信。CGI程序可以是任何可以读取环境变量、命令行参数和标准输入/输出的程序,通常用于动态生成HTML页面...
HttpURLConnection类是Java标准库的一部分,它为开发者提供了一种方式,通过URL连接到Web服务器,并执行HTTP请求。创建一个HttpURLConnection对象通常包括以下几个步骤: 1. 通过URL对象打开连接:使用URL类创建一...