PHP程序员站--PHP编程开发平台
 当前位置:主页 >> 网页制作 >> HTML5 >> 

HTML5 Web Sockets API

HTML5 Web Sockets API

来源:phperz.com  作者:phper  发布时间:2012-06-14
一、API 参考 1. html5 websockets 官方API文档: http://dev.w3.org/html5/websockets/ 2. 代码示例var socket = new WebSocket(ws://game.example.com:12010/updates); socket.onopen = function () { setInterval(function() { if (socket.bufferedAmount == 0) sock

一、API 参考

1. html5 websockets 官方API文档: http://dev.w3.org/html5/websockets/

2. 代码示例var socket = new WebSocket(‘ws://game.example.com:12010/updates’);

socket.onopen = function () {
    setInterval(function() {
        if (socket.bufferedAmount == 0)
            socket.send(getUpdateData());
    }, 50);
};

(1) 浏览器检测:
    var hasWebSockets = !!(window.WebSocket);

(2) Scripting API:

API 描述
WebSocket(url, protocols) 1. url: 要连接的地址
2. protocols: {String} 或者 {Array}。当是 {String} 的时候相当于数组中的值 ['ws'];当是 {String} 的时候,表示一个协议集
readyState WebSocket 属性。表示 WebSocket 的状态
bufferAmount WebSocket 属性。返回 send() 排队队列中以 utf-8 编码文本的字节数
send() WebSocket 方法。使用 WebSocket 传输数据
close() WebSocket 方法。有下面几种情况:

 

  1. 当 readyState 属性的状态是 CLOSING 或者 CLOSED,不做任何事
  2. 当 WebSocket 还没有建立链接。断掉链接,并把 readState 的状态设置为 CLOSING
  3. 当 WebSocket 还未进行关闭握手,开始关闭握手,并把 readState 的状态设置为 CLOSING
  4. 其他状态,把 readState 的状态设置为 CLOSING
WebSocket 事件 描述
onopen 当 readyState 状态为 OPEN 时触发
onmessage 当 WebSocket 链接收到文本数据,客户端会创建一个 MessageEvent。触发些事件
onerror 当 WebSocket 出现异常时触发
onclose 当 WebSocket 已经关闭,客户端会通过 CloseEvent 创建一个 close 事件



readyState 状态码 message 描述
0 CONNECTING 链接仍没有建立,连接中
1 OPEN 建立 WebSocket 链接,可以进行交互
2 CLOSING 正在进行关闭握手
3 CLOSED 链接已经关闭,或者打不开

二、DEMO

    Kaazing 的 demo: http://kaazing.me/

三、注意事项

WebSocket 仍存在一些问题,Firefox 4 默认并没有打开。如要打开,需要在 about:config 中把下面两项设置为true:

network.websocket.enabled
network.websocket.override-security-block

使用它,更多的是关注后端的应该,前端方面只是简单的事件处理

四、附加一些资料: 浏览器兼容方案

Kaazing WebSocket Gateway – 一个 Java 的解决方案,不依赖 Native WebSockets,兼容所有浏览器。

jWebSocket – 一个纯 Java/Javascript 的解决方案。包括 Server/clients/flash 等支持。
Start Using HTML5 WebSockets Today – PHP solution


延伸阅读:
html5标签列表
w3c标准html5手册
css3.0参考手册
Canvas的画线技巧
HTML5 Canvas API速查手册
Tags: HTML5   web   Sockets   api  
PHP程序员站 Copyright © 2007-2010,PHPERZ.COM All Rights Reserved 粤ICP备07503606号