websocket
软件通信有七层结构,下三层偏向于数据通信,上三层更倾向于数据处理,中间的传输层则是连接下三层和上三层之间的桥梁,每一层都做不同的工作,上层协议依赖于下层协议,基于这个通信结构的概念,Socket并不是一个协议,是应用层与ICP/IP协议族通信的中间软件抽象层,它是一组接口,当两台主机通信时,让Socket去组织数据,以符合指定的协议。TCP连接则是更依靠于底层的IP协议,IP协议的连接则依赖于链路层等更低层次。Websocket则是一个典型的应用层协议。
总的来说:Socket是传输控制层协议,Websocket是应用层协议。
WebSocket对象提供了用于创建和管理WebSocket连接,以及可以通过该连接发送和接手数据的API。
使用WebSocket()构造函数来构造一个WebSocket
构造函数
WebSocket(url[,protocals]) //返回一个WebSocket对象
常量
Constant | Value |
---|---|
WebSocket.CONNECTING | 0 |
WebSocket.OPEN | 1 |
WebSocket.CLOSING | 2 |
WebSocket.CLOSED | 3 |
属性
WebSocket.binaryType //使用二进制的数据类型连接
WebSocekt.bufferedAmount //只读,未发送到服务器的字节数
WebSocket.extentions //只读,服务器选择的扩展
WebSocket.onclose //用于指定连接关闭后的回调函数
WebSocket.onerror //用于指定当从服务器接受到信息时的回调函数
WebSocket.onmessage //用于指定当从服务器接受到信息时的回调函数
WebSocket.onopen //用于指定连接成功后的回调函数
WebSocket.protocal //只读,服务器选择的下属协议
WebSocket.readyState //只读,当前的链接状态
WebSocket.url //只读,WebSocket的绝对路径
方法
WebSocket.close([code[, reason]]) //关闭当前链接
WebSocket.send(data) //对要传输的数据进行排队
事件
使用addEventListener()或将一个事件监听器赋值给本接口的oneventname属性,来监听下面的事件。
close //当一个WebSocket连接被关闭时触发,也可以通过onclose属性来设置
error //当一个WebSocket连接因错误而关闭时触发,例如无法发送数据时,也可以通过onclose属性来设置
message //当通过WebSocket收到数据时触发,也可以通过onmessage属性来设置
open //当一个WebSocket连接成功时触发,也可以通过onopen属性来设置
// create WebSocket connection
const socket = new WebSocket('ws://localhost:8080');
//Connection opened
socket.addEventListener('open', function(event)