ws(WebSocket) ==> http,wss ==> https
事件
WebSocket 服务器事件
connection:- 当一个新的WebSocket连接被建立时触发。
- 回调函数的参数是一个
WebSocket实例,代表新的连接。
error:- 当服务器遇到错误时触发。
- 回调函数的参数是一个
Error对象,包含错误信息。
headers:- 当一个新的WebSocket连接请求被接收时触发,但尚未建立连接。
- 回调函数的参数是请求头和响应头对象,允许您修改响应头。
listening:- 当服务器开始监听指定端口时触发。
close:- 当服务器关闭时触发。
js
const WebSocket = require('ws')
const wss= new WebSocket.Server({port:3000})
wss.on('connection',ws=>{ // 事件监听器
console.log('我是Socket 我连接上了')
ws.on('message',data=>{
// 接收到指挥
console.log('收到消息:'+data)
ws.send('消息结果:'+data)
})
ws.on('close',()=>{
console.log('走了~ 走了')
})
})WebSocket 客户端事件
open:- 当WebSocket连接成功建立时触发。
message:- 当接收到来自服务器的消息时触发。
- 回调函数的参数是接收到的消息数据(可以是字符串、Buffer或ArrayBuffer)。
error:- 当连接遇到错误时触发。
- 回调函数的参数是一个
Error对象,包含错误信息。
close:- 当WebSocket连接关闭时触发。
- 回调函数的参数是一个
CloseEvent对象,包含关闭代码和关闭原因。
ping:- 当接收到服务器的ping帧时触发。
- 回调函数的参数是ping帧的数据(如果有的话)。
pong:- 当接收到服务器的pong帧时触发。
- 回调函数的参数是pong帧的数据(如果有的话)。
unexpected-response:- 当接收到一个非101状态码的响应时触发。
- 回调函数的参数是
ClientRequest对象、Response对象和Buffer对象(包含响应数据)。
upgrade:- 当WebSocket升级请求被发送时触发。
- 回调函数的参数是
OutgoingMessage对象、IncomingMessage对象和响应头对象
客户端应当设置对应事件的事件处理器:
js
methods: {
connectWebSocket() {
this.webSocket = new WebSocket('ws://localhost:3000');
this.webSocket.onopen = () => {
this.connected = true;
console.log('Connected to WebSocket server.');
};
this.webSocket.onmessage = (event) => {
this.messages.push(event.data);
console.log('Received:', event.data);
};
this.webSocket.onclose = () => {
this.connected = false;
console.log('Disconnected from WebSocket server.');
// Optionally, try to reconnect after a delay
setTimeout(this.connectWebSocket, 5000);
};
this.webSocket.onerror = (error) => {
console.error('WebSocket error:', error);
};
},
...