9.4 WebSocket

WebSocket与本章前三节介绍的内容不同,它是HTML5原生支持的功能。使用WebSocket需要外部服务器的支持。

在使用WebSocket通信前需要先连接到外部的WebSocket服务器:

var connection = new WebSocket('ws://127.0.0.1');

当连接打开后会触发onopen事件:

connection.onopen = function(){
    //do something when the connection is open
}

向服务器发送数据使用send方法:

connection.send(data);

其中data可以是ArrayBufferBlob或字符串。

当接收到来自服务器的数据时会触发onmessage事件:

connection.onmessage = function(result){
    //do something with result
}

其中result是一个对象,可以通过result.data访问数据。如果传送的数据是二进制数据,还可以通过result.data.byteLengthresult.data.binaryType获取二进制数据的长度和类型(ArrayBufferBlob)。

当WebSocket连接发生异常时会触发onerror事件:

connection.onerror = function(error){
    console.log(error);
};

更多有关WebSocket的内容可以参见http://www.html5rocks.com/zh/tutorials/websockets/basics/