📅  最后修改于: 2023-12-03 15:23:21.630000             🧑  作者: Mango
在 WebSockets (WS) 中,创建房间是一项非常常见的任务。在本文中,我们将介绍如何在 WS 节点 JS 中创建房间。
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
const rooms = {};
wss.on('connection', (ws) => {
ws.room = 'default-room';
if (!rooms[ws.room]) {
rooms[ws.room] = [];
}
rooms[ws.room].push(ws);
});
在上面的代码中,我们创建了一个名为 rooms
的空对象,并将其传递给了 WebSocket 服务器的 connection
事件。在客户端连接到服务器时,我们将创建一个名为 default-room
的房间,并将新的连接添加到该房间的数组中。
wss.on('connection', (ws) => {
ws.room = 'default-room';
if (!rooms[ws.room]) {
rooms[ws.room] = [];
}
rooms[ws.room].push(ws);
ws.on('message', (data) => {
for (const client of rooms[ws.room]) {
if (client.readyState === WebSocket.OPEN) {
client.send(data);
}
}
});
});
在上面的代码中,我们使用 ws.on('message', ...)
监听客户端发来的消息。在每个连接中,我们迭代房间中的所有连接,并发送消息到 client.readyState === WebSocket.OPEN
的连接。
通过以上步骤,我们已经成功在 WS 节点 JS 中创建了房间。为了使代码更加易于理解和维护,请确保将功能拆分成小模块,并使用注释来解释每个功能的目的。