WebSocket(1)-- WebSocket API 简介
WebSocket 是 html5 新增加的一种通信协议,目前流行的浏览器都支持这个协议,例如
Chrome,Safari,Firefox,Opera,IE 等等,对该协议支持最早的应该是 chrome,从
chrome12 就已经开始支持,随着协议草案的不断变化,各个浏览器对协议的实现也在不
停的更新。该协议还是草案,没有成为标准,不过成为标准应该只是时间问题了,从
WebSocket 草案的提出到现在已经有十几个版本了,目前最新的是版本 17,所对应的协
议版本号为 13,目前对该协议支持最完善的浏览器应该是 chrome,毕竟 WebSocket 协议
草案也是 Google 发布的。
1.#####WebSocket API 简介
首先看一段简单的 javascript 代码,该代码调用了 WebSockets 的 API。
[javascript]view plaincopy
1. varws=newWebSocket(“ws://echo.websocket.org”);
2.
3. ws.onopen=function(){ws.send(“Test!”);};
4.
5. ws.onmessage=function(evt){console.log(evt.data);ws.close();};
6.
7. ws.onclose=function(evt){console.log(“WebSocketClosed!”);};
8.
9. ws.onerror=function(evt){console.log(“WebSocketError!”);};
这份代码总共只有 5 行,现在简单概述一下这 5 行代码的意义。
第一行代码是在申请一个 WebSocket 对象,参数是需要连接的服务器端的地址,同 http
协议使用 http://开头一样,WebSocket 协议的 URL 使用 ws://开头,另外安全的
WebSocket 协议使用 wss://开头。
第二行到第五行为 WebSocket 对象注册消息的处理函数,WebSocket 对象一共支持四个
消息 onopen, onmessage, onclose 和 onerror,当 Browser 和 WebSocketServer 连接成功
后,会触发 onopen 消息;如果连接失败,发送、接收数据失败或者处理数据出现错误,
browser 会触发 onerror 消息;当 Browser 接收到 WebSocketServer 发送过来的数据时,
就会触发 onmessage 消息,参数 evt 中包含 server 传输过来的数据;当 Browser 接收到
WebSocketServer 端发送的关闭连接请求时,就会触发 onclose 消息。我们可以看出所有
的操作都是采用消息的方式触发的,这样就不会阻塞 UI,使得 UI 有更快的响应时间,得
到更好的用户体验。
评论0