WebSocket是html5新增加的一种通信协议,目前流行的浏览器都支持这个协议,例如Chrome,Safari,Firefox,Opera,IE等等,对该协议支持最早的应该是chrome,从chrome12就已经开始支持,随着协议草案的不断变化,各个浏览器对协议的实现也在不停的更新。该协议还是草案,没有成为标准,不过成为标准应该只是时间问题了,从WebSocket草案的提出到现在已经有十几个版本了,目前最新的是版本17,所对应的协议版本号为13,目前对该协议支持最完善的浏览器应该是chrome,毕竟WebSocket协议草案也是Google发布的。
1. WebSocket API简介
首先看一段简单的javascript代码,该代码调用了WebSockets的API。 [javascript] view plaincopy
var ws = new WebSocket(“ws://echo.websocket.org”); ws.onopen = function(){ws.send(“Test!”); }; ws.onmessage = function(evt){console.log(evt.data);ws.close();}; ws.onclose = function(evt){console.log(“WebSocketClosed!”);}; 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有更快的响应时间,得到更好的用户体验。

最新文章

  1. 电脑缺少**.dll文件
  2. Binary Search Tree Iterator
  3. Flex httpservice返回值类型和处理 (转)
  4. ASP.NET的运行原理与运行机制
  5. centos 主从复制
  6. C#服务启动以及服务指令
  7. C++学习笔记(五):指针和引用
  8. 强大的字符串格式化函数 - format
  9. Linux下安装配置词典GoldenDict
  10. JavaScript简单入门(补充篇)
  11. ●BOZJ 1927 [Sdoi2010]星际竞速
  12. Codeforces Round #438 B. Race Against Time
  13. 405 Method Not Allowed error with PUT or DELETE Request on IIS Server
  14. SpringMVC和Struts2区别比较
  15. MySql常用命令集Mysql常用命令showdatabases;显示数据库createdatab
  16. java.lang.NoClassDefFoundError: com/sun/image/codec/jpeg/JPEGCodec 解决方案
  17. Java语法基础(四)----循环结构语句
  18. 实际工作与JAVA面试题
  19. 更安全的HTTPS
  20. 数据库SQLITE3初识

热门文章

  1. OpenStack:安装Neutron与provider network
  2. firebreath 在谷歌和火狐浏览器下的调试 以及打包
  3. 35.在PCB中删除元件
  4. 13.首次安装CY7C68013A驱动失败记(结果竟然是这样)
  5. homework-04 抓瞎
  6. 新 四则运算题目 C++
  7. mongodb修改器
  8. Asp.net开启分布式事务管理
  9. LineNumberReader类
  10. android 开发-设置控件/view的水平方向翻转