Websocket 可以实现客户端和服务器间的双向、基于消息的文本或是二进制数据传输,是浏览器中最接近套接字的API
1、连接协商和同源策略
2、与既有HTTP基础设施的互操作
3、基于消息的通信和高效消息分帧
4、子协议协商与可扩展能力
var ws = new WebSocket('ws://example.com/socket');
ws.onerror = function(error){....}
ws.onclose = function(){}
ws.onopen() = function(){
ws.send("Connneted");
}
ws.onmessage = function(msg){
if(msg.data instanceof Blob){
processBlog(msg.data)
}else{
processText(msg.data);
}
}
WebSocket 通信只涉及消息,应用代码无须担心缓冲、解析、重建接收到的消息。
浏览器接受到新消息之后,如果是文本数据,会自动将其转换为DOMString对象,如果是二进制数据或是Blob对象,会直接将其转交给应用。还可以经blob对象(适合存储在磁盘)转换为arraybuffer(适合在内存中做操作)