在相对路径上创建多个 Node.js websockets 可以通过以下步骤实现:
server.js
的文件,并在其中编写以下代码:const express = require('express');
const WebSocket = require('ws');
const app = express();
// 创建 HTTP 服务器
const server = app.listen(3000, () => {
console.log('HTTP server started on port 3000');
});
// 创建 WebSocket 服务器
const wss1 = new WebSocket.Server({ noServer: true });
const wss2 = new WebSocket.Server({ noServer: true });
// 监听 HTTP 服务器的 upgrade 事件,并将请求转发给对应的 WebSocket 服务器
server.on('upgrade', (request, socket, head) => {
if (request.url === '/ws1') {
wss1.handleUpgrade(request, socket, head, (ws) => {
wss1.emit('connection', ws, request);
});
} else if (request.url === '/ws2') {
wss2.handleUpgrade(request, socket, head, (ws) => {
wss2.emit('connection', ws, request);
});
} else {
socket.destroy();
}
});
// 处理 WebSocket 连接
wss1.on('connection', (ws) => {
ws.on('message', (message) => {
console.log('Received message from client 1:', message);
// 在这里处理来自客户端的消息
});
ws.on('close', () => {
console.log('Client 1 disconnected');
// 在这里处理客户端断开连接的逻辑
});
});
wss2.on('connection', (ws) => {
ws.on('message', (message) => {
console.log('Received message from client 2:', message);
// 在这里处理来自客户端的消息
});
ws.on('close', () => {
console.log('Client 2 disconnected');
// 在这里处理客户端断开连接的逻辑
});
});现在,你已经成功创建了两个相对路径上的 Node.js websockets。你可以使用不同的 WebSocket 客户端连接到 /ws1
和 /ws2
路径上,然后在服务器端处理来自客户端的消息和断开连接的事件。
请注意,以上代码示例仅用于演示目的,实际应用中可能需要根据具体需求进行修改和优化。另外,如果你需要部署到腾讯云上,可以考虑使用腾讯云的云服务器(CVM)和云数据库(CDB)等产品来支持你的 Node.js 项目。具体的产品介绍和文档可以在腾讯云官方网站(https://cloud.tencent.com/)上找到。
领取专属 10元无门槛券
手把手带您无忧上云