对websocket的功能封装,构造函数是什么

2021-09-24 14:21:55 浏览数 (1)

代码语言:javascript复制
WebSocket(url[, protocols])

url就是要连接的websocket的地址,那么可选的protocols是什么呢?protocols可以传入单个协议字符串或者是协议字符串数组。它指的是 WebSocket 服务器实现的子协议。

子协议是在WebSocket协议基础上发展出来的协议,主要用于具体的场景的处理,它是是在WebSocket协议之上,建立的更加严格的规范。

比如,客户端请求服务器时候,会将对应的协议放在Sec-WebSocket-Protocol头中:

代码语言:javascript复制
GET /socket HTTP/1.1
...
Sec-WebSocket-Protocol: soap, wamp

服务器端会根据支持的类型,做对应的返回,如:

代码语言:javascript复制
Sec-WebSocket-Protocol: soap

WebSocket API有四种状态,分别是:

状态定义

取值

WebSocket.CONNECTING

0

WebSocket.OPEN

1

WebSocket.CLOSING

2

WebSocket.CLOSED

3

通过调用close或者Send方法,会触发相应的events事件,WebSocket API 的事件主要有:close,error,message,open这4种。

下面是一个具体使用的例子:

代码语言:javascript复制
// 创建连接
const socket = new WebSocket('ws://localhost:8000');

// 开启连接
socket.addEventListener('open', function (event) {
    socket.send('没错,开启了!');
});

// 监听消息
socket.addEventListener('message', function (event) {
    console.log('监听到服务器的消息 ', event.data);
});

0 人点赞