使用js封装一个websocket的类,需要写注释,加调用案例
时间: 2024-01-25 07:02:01 浏览: 24
好的,这里提供一个使用JavaScript封装WebSocket类的示例,附有代码注释和调用案例:
```javascript
class WebSocketClient {
/**
* 初始化WebSocketClient类
* @param {string} url WebSocket服务器地址
* @param {string} protocol 通信协议,默认值为null
*/
constructor(url, protocol = null) {
this.url = url;
this.protocol = protocol;
this.websocket = null;
}
/**
* 连接WebSocket服务器
* @param {function} onOpen 连接成功回调函数
* @param {function} onMessage 收到消息回调函数
* @param {function} onError 连接错误回调函数
* @param {function} onClose 连接关闭回调函数
*/
connect(onOpen, onMessage, onError, onClose) {
this.websocket = new WebSocket(this.url, this.protocol);
this.websocket.onopen = onOpen;
this.websocket.onmessage = onMessage;
this.websocket.onerror = onError;
this.websocket.onclose = onClose;
}
/**
* 向WebSocket服务器发送消息
* @param {string} message 消息内容
*/
send(message) {
if (this.websocket) {
this.websocket.send(message);
console.log(`Sent message: ${message}`);
} else {
console.error("WebSocket connection not established.");
}
}
/**
* 关闭WebSocket连接
*/
close() {
if (this.websocket) {
this.websocket.close();
console.log("WebSocket connection closed.");
} else {
console.error("WebSocket connection not established.");
}
}
}
// 调用案例
const ws = new WebSocketClient("ws://localhost:8080");
ws.connect(
() => console.log("WebSocket connection established."),
(event) => console.log(`Received message: ${event.data}`),
(error) => console.error(`WebSocket error: ${error}`),
(event) => console.log("WebSocket connection closed.")
);
ws.send("Hello WebSocket!");
```
在调用案例中,我们首先创建一个`WebSocketClient`对象,并传入WebSocket服务器地址`ws://localhost:8080`。然后调用`connect()`方法连接WebSocket服务器,并传入四个回调函数,分别对应连接成功、收到消息、连接错误和连接关闭四个事件。最后调用`send()`方法发送一条消息给WebSocket服务器。