nodejs-websocket 设置访问路径
时间: 2024-09-06 17:06:36 浏览: 72
Node.js 中使用 WebSocket 时,可以通过不同的库来实现,比如 `ws` 或者 `socket.io` 等。不同的库有不同的设置方式来设置 WebSocket 的访问路径。以下是在使用 `ws` 库设置 WebSocket 访问路径的一个简单示例:
首先,你需要安装 `ws` 库,可以通过 npm 来安装:
```bash
npm install ws
```
然后,你可以创建一个 WebSocket 服务器,并设置一个特定的路径来监听连接。以下是一个简单的示例代码:
```javascript
const WebSocket = require('ws');
// 创建一个新的 WebSocket 服务器实例,监听 8080 端口
const wss = new WebSocket.Server({ port: 8080 });
// 为服务器添加一个事件监听器,当有新的连接时触发
wss.on('connection', function connection(ws) {
console.log('Client connected');
// 当接收到客户端消息时的处理逻辑
ws.on('message', function incoming(message) {
console.log('received: %s', message);
});
// 当客户端断开连接时的处理逻辑
ws.on('close', function(code, reason) {
console.log(`Client disconnected with code ${code} and reason: ${reason}`);
});
});
```
如果你想设置一个特定的路径,比如 `/websocket`,那么可以使用 HTTP 服务器来处理这部分逻辑,并将 WebSocket 连接代理到 ws 服务器:
```javascript
const http = require('http');
const WebSocket = require('ws');
// 创建一个 HTTP 服务器监听 8080 端口
const server = http.createServer((req, res) => {
// 检查请求的路径是否为 '/websocket'
if (req.url === '/websocket') {
// 是,将请求代理到 WebSocket 服务器
wss.handleUpgrade(req, req.socket, Buffer.alloc(0), function done(ws) {
wss.emit('connection', ws, req);
});
} else {
// 否,返回 404 或其他响应
res.writeHead(404);
res.end();
}
});
// 创建 WebSocket 服务器并将其与 HTTP 服务器关联
const wss = new WebSocket.Server({ server });
wss.on('connection', function connection(ws) {
// 与之前相同的处理逻辑
});
server.listen(8080);
```
在这个例子中,只有当客户端请求 `/websocket` 路径时,才会建立 WebSocket 连接,否则会返回 404 响应。
阅读全文