WebSocket是一种在单个TCP连接上进行全双工通信的协议。Node.js中的ws模块提供了WebSocket的实现,使得Node.js可以轻松地创建WebSocket服务器和客户端。
在ws模块中,WebSocket客户端由WebSocket类实现。WebSocket提供了一系列的API,用于管理WebSocket连接、发送消息等操作。本文将详细讲解WebSocket客户端和服务端的API。
在使用WebSocket之前,需要先创建一个WebSocket连接。创建WebSocket的方式如下:
const WebSocket = require('ws');
const ws = new WebSocket('ws://localhost:8080');
上述代码中,首先引入了ws模块,然后通过new关键字创建了一个WebSocket实例。在创建WebSocket时,需要传递一个URL,指定WebSocket服务器的地址和端口号。
WebSocket提供了一系列的事件,用于监听WebSocket连接的建立、关闭等事件。以下是WebSocket的常用事件:
示例代码如下:
ws.on('open', function open() {
console.log('connected');
ws.send('hello');
});
ws.on('message', function incoming(data) {
console.log(`received message: ${data}`);
});
ws.on('close', function close() {
console.log('disconnected');
});
上述代码中,使用了ws.on()方法监听了open、message和close事件。当WebSocket连接建立成功时,会触发open事件。当WebSocket连接收到消息时,会触发message事件,并传递消息内容作为参数。当WebSocket连接关闭时,会触发close事件。
WebSocket提供了一些属性和方法,用于管理WebSocket连接、发送消息等操作。以下是WebSocket的常用属性和方法:
示例代码如下:
js
ws.send('hello');
ws.close();
上述代码中,通过ws.send方法向WebSocket服务器发送消息。通过ws.close方法关闭WebSocket连接。
在使用WebSocket.Server之前,需要先创建一个WebSocket服务器。创建WebSocket.Server的方式如下:
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
上述代码中,首先引入了ws模块,然后通过new关键字创建了一个WebSocket.Server实例。在创建WebSocket.Server时,需要传递一个配置对象,其中port属性指定WebSocket服务器监听的端口号。
WebSocket.Server提供了一系列的事件,用于监听WebSocket连接的建立、关闭等事件。以下是WebSocket.Server的常用事件:
示例代码如下:
wss.on('connection', function connection(ws) {
console.log('new connection');
ws.on('message', function incoming(data) {
console.log(`received message: ${data}`);
});
ws.on('close', function close() {
console.log('disconnected');
});
});
上述代码中,使用了wss.on()方法监听了connection事件。当有新的WebSocket连接建立时,会触发该事件,并传递一个WebSocket实例ws作为参数。在连接建立后,可以通过ws.on()方法监听message和close事件,以处理WebSocket连接收到消息和关闭的情况。
WebSocket.Server提供了一系列的方法,用于管理WebSocket连接、发送消息等操作。以下是WebSocket.Server的常用方法:
示例代码如下:
// 获取所有WebSocket连接
const clients = wss.clients;
// 向所有WebSocket连接发送消息
wss.broadcast = function broadcast(data) {
clients.forEach(function each(client) {
if (client.readyState === WebSocket.OPEN) {
client.send(data);
}
});
};
// 关闭WebSocket服务器
wss.close();
上述代码中,首先通过wss.clients获取了当前WebSocket服务器中所有的WebSocket连接。然后通过定义wss.broadcast方法,实现向所有WebSocket连接发送消息的功能。最后通过wss.close方法关闭WebSocket服务器。
WebSocket是一种在单个TCP连接上进行全双工通信的协议。Node.js中的ws模块提供了WebSocket的实现,使得Node.js可以轻松地创建WebSocket服务器和客户端。本文详细讲解了WebSocket客户端和服务端的API,包括创建WebSocket连接、监听WebSocket连接的事件、管理WebSocket连接的方法以及WebSocket实例的属性和方法