基础介绍
Web Sockets是HTML5提供的在Web应用程序中客户端与服务器端之间进行的非HTTP的通信机制。它实现了用HTTP不容易实现的服务器端的数据推送等智能通信技术。
使用Web Sockets API可以在服务器与客户端之间建立一个非HTTP的双向连接。这个连接是实时的,也是永久的,除非被显示关闭。这意味着当服务器想向客户端发送数据时,可以立即将数据推送到客户端的浏览器中,无须重新建立连接。只要客户端有一个被打开的socket(套接字)并且与服务器建立了连接,服务器就可以把数据推送到这个socket上,服务器不再需要轮询客户端的请求,从被动转为主动。
使用Web Sockets API
Web Sockets的API本身非常简单。将URL字符串作为参数,然后调用WebSocket对象的构造函数来建立与服务器之间的通信连接,例如:
var webSocket = new WebSocket("ws://localhost:8005/socket");
URL字符串必须以“ws”或“wss”(加密通信时)文字作为开头。这个URL字符串被设定好之后,在JavaScript脚本中可以通过访问WebSocket对象的url属性来重新获取。通信连接建立好之后,就可以进行客户端与服务器端的双向通信了。使用WebSocket对象的send()方法对服务器发送数据,只能发送文本数据,但是可以使用JSON对象把任何JavaScript对象转换成文本数据后进行发送。使用send()方法的代码如下:
webSocket.send("data");
通过获取message事件句柄来接收服务器传过来的数据,示例如下:
webSocket.addEventListent("message", function(event) { var data = event.data; // 其他处理代码。 }, false);
通过获取open事件句柄来监听socket的打开事件,示例如下:
webSocket.addEventListener("open", function(event) { // 开始通信时的处理。 }, false);
通过获取close事件句柄来监听socket的关闭事件,示例如下:
webSocket.addEventListener("close", function(event) { // 通信结束时的处理。 }, false);
通过获取close()方法来关闭socket,切断通信连接,示例如下:
webSocket.close();
另外,可以通过读取readyState的属性值来获取WebSocket对象的状态。readyState属性存在以下几种属性值:
- CONNECTING(数字值0):表示正在连接。
- OPEN(数字值1):表示已建立连接。
- CLOSING(数字值2):表示正在关闭连接。
- CLOSED(数字值3):表示已关闭连接。
发送对象
使用WebSockets API,不仅可以发送文本数据,而且可以JSON对象来发送一切JavaScript中的对象。使用JSON对象的关键是使用它的两个方法——JSON.parse()方法与JSON.stringify()方法,其中JSON.stringift()方法把JavaScript对象转换成为文本数据,JSON.parse()方法将文本数据转回为JavaScript对象。示例如下:
var host = "ws://localhost:8005/socket"; var webSocket = new WebSocket(host); var userName, userAge, successFlag, currentTime; webSocket.addEventListener("message", function(event) { var DataBase = JSON.parse(event.data); userName = DataBase.userName; userAge = DataBase.userAge; successFlag = false; if(DataBase.DataType == "SQLServer") { successFlag = InsertSQLData(); } else if(DataBase.DataType == "ORACLE") { successFlag = InsertORACLEData(); } currentTime = new Date(); webSocket.send(JSON.stringify({ result: successFlag, time: currentTime })); }, false);
发表评论
-
使用选择器在页面中插入内容
2011-11-08 10:09 0使用选择器来插入文字 使用选择器来插入内容 在CSS2中, ... -
HTML5 绘制图形【4】
2011-11-08 08:39 1710绘制变形图形 坐标变换 绘制图形的时候,我们可能会想要旋转 ... -
CSS3 选择器【2】
2011-11-07 14:30 1133UI元素状态伪类选择器 UI元素状态伪类选择器的共同特征是: ... -
HTML5 绘制图形【3】
2011-11-05 19:28 1334绘制渐变图形 渐变是指在填充时从一种颜色慢慢过渡到另外一种颜 ... -
CSS3 选择器【1】
2011-11-06 12:19 1748选择器概述 选择器是CS ... -
HTML5 绘制图形【2】
2011-11-04 11:42 1443使用路径 绘制圆形 要 ... -
HTML5 绘制图形【1】
2011-11-03 12:48 1555canvas元素基础 canvas元素是HTML5中新增的一 ... -
CSS3 模块化结构
2011-11-03 19:12 1538CSS3中的模块 模块名称 功能描述 Basi ... -
HTML5 获取地理位置信息
2011-11-01 18:12 5445Geolocation API的基本知识 在HTML5中,为 ... -
HTML5 使用Web Worker处理线程
2011-11-01 09:16 4690基础知识 Web Worker是在HTML5中新增的,用来在 ... -
HTML5 跨文档消息传输
2011-10-29 19:11 2029基本介绍 HTML5提供了在网页文档之间互相接收与发送信息的 ... -
HTML5 离线应用程序【2】
2011-10-27 20:48 1892applicationCache对象 application ... -
HTML5 离线应用程序【1】
2011-10-27 14:02 1579离线Web应用程序介绍 在HTML5中新增了一个API,为离 ... -
HTML5 本地数据库
2011-10-24 21:03 2621本地数据库的基本概念 ... -
HTML5 Web Storage
2011-10-24 15:51 1636Web Storage简单使用 在HTML5中重新提供了一种 ... -
HTML5 多媒体播放【3】
2011-10-23 10:45 1252video元素和audio元素的方法 play()方法:使 ... -
HTML5 多媒体播放【2】
2011-10-22 21:14 1752音频和视频元素的属性 这两种元素所具有的属性大致相同,介绍如 ... -
HTML5 多媒体播放【1】
2011-10-21 18:58 971video与audio元素基础 在HTML5中,video元 ... -
HTML5 拖放API
2011-10-17 19:43 4965在HTML5中,已经支持在浏览器与其他应用程序之间的数据互相拖 ... -
HTML5 文件API
2011-10-16 18:49 5050在HTML5中,提供了一个关于文件操作的文件API,通过使用这 ...
相关推荐
在HTML5中,开发者可以享受到许多新特性,比如离线存储、音频和视频内嵌、 canvas(画布)用于动态图形、svg(可缩放矢量图形)用于高质量图像、geolocation(地理位置)API以获取用户位置信息、web workers和web ...
Web Sockets则提供了双向通信,实现实时应用如聊天室和在线游戏。 6. **响应式设计**:HTML5结合CSS3的媒体查询,实现了跨设备的响应式设计,使网页能够适应不同屏幕尺寸的设备。 7. **离线缓存与Service Worker**...
此外,Web Workers和Web Sockets的引入,分别优化了后台多线程处理和实时双向通信,提高了Web应用的性能和响应速度。 HTML5的另一大亮点是其对移动设备的优化。考虑到智能手机和平板电脑的兴起,HTML5在设计时就...
#### 四、HTML5与Web Sockets - **Web Sockets**:Web Sockets是一种新的网络协议,它可以实现在客户端和服务器之间建立全双工通信通道,这意味着数据可以在两个方向上自由流动而不需要每次都重新建立连接。 - **...
Web Sockets则提供了双向实时通信能力。 三、HTML5实战应用 1. 响应式设计:利用媒体查询(media queries)实现跨设备兼容,适应不同屏幕尺寸的设备。 2. 应用程序缓存:通过manifest文件定义离线存储资源,实现...
Web Sockets则提供双向实时通信,适合于实时更新积分变动或库存状态。 在“points”这个压缩包文件中,可能包含了以下内容: 1. **HTML模板**:用于构建积分商城的基本结构和布局,可能包括首页、积分兑换页面、...
而Web Sockets则提供了双向通信通道,使得实时通信应用(如即时通讯、在线游戏)在Web端变得容易实现。 七、Android的兼容性和适配 虽然HTML5提供了跨平台的能力,但Android设备的多样化和系统版本差异可能带来...
HTML5是下一代超文本标记语言,它为移动Web开发提供了强大的功能和丰富的API,使得开发者可以构建更加互动、性能优异的网页应用。本指南将深入探讨HTML5在移动Web开发中的应用,帮助开发者掌握这一现代Web标准的核心...
Web Sockets提供双向通信,实现实时的网络应用。 7. Geolocation定位:允许获取用户地理位置信息,为位置服务类应用提供便利。 三、HTML5基础教程代码 “HTML5基础教程代码ppt(共15讲)”涵盖了HTML5的基本语法、...
8. Web Workers和Web sockets:这两个特性提高了Web应用的性能和实时通信能力,Web Workers可以后台运行脚本,减轻主线程负担;Web Sockets则实现了持久化的双向通信。 通过《HTML5-step by step》这本书,读者不仅...
HTML5的核心特性包括离线存储(离线Web应用)、拖放功能、媒体元素(音频和视频)、 canvas画布、svg矢量图、geolocation定位服务、web workers和web sockets等。这些特性使得HTML5能够创建交互性更强、功能更丰富的...
Web Storage解决了cookies存储量小、性能低的问题,Web Workers允许在后台线程中执行复杂计算,提升网页性能,而Web Sockets则实现了双向实时通信,为实时应用如在线聊天、游戏等提供了可能。 书中的内容可能涵盖...
- **Web Workers和Web sockets**:Web Workers 提供后台多线程处理能力,Web Sockets 实现双向实时通信,提升应用性能和互动体验。 - **拖放功能**:内置的拖放API让元素的拖放操作变得简单易行,增强用户体验。...
Web Sockets则实现了持久化的双向通信,为实时交互应用提供了基础。 7. **表单控件增强**:HTML5新增了多种表单输入类型,如日期选择器、电子邮件、电话号码等,以及新的form属性,如required(必填)、pattern...
Web Sockets则实现了双向实时通信,极大地优化了在线游戏、聊天应用等需要实时交互的场景。 5. **CSS3增强**:虽然不是HTML5的一部分,但CSS3常常与HTML5一起被提及,它提供了更多的样式控制,如边框半径、阴影、...
Web Sockets则提供实时双向通信,适合实时更新内容的应用场景,如聊天室、游戏等。 在实际开发中,开发者会结合CSS3来控制样式和布局,利用其新的选择器、动画和过渡效果来提升微网站的视觉吸引力。JavaScript库如...
6. 通信能力的增强:HTML5增加了Web Sockets、WebRTC等技术,支持更快速的实时通信,非常适合需要即时通讯或实时视频/音频交换的Web应用。 7. 新的表单元素:HTML5对表单元素做了重要改进,引入了如email、number、...
HTML5是超文本标记语言的第五个版本,它引入了许多新特性,如离线存储、拖放功能、媒体元素、 canvas 绘图、svg矢量图、geolocation 定位、web workers和web sockets等。这些特性使得HTML5可以构建更加动态、功能...