安装必要的开发工具
确保你已经安装了Node.js和npm,接着安装WebSocket客户端库ws:
npm install -g ws
创建前端项目
使用React或Vue等框架创建前端项目,并在项目根目录下安装必要的库:
cd project npm install react react-dom @types/react @types/react-dom
配置WebSocket客户端
在前端项目中,创建一个WebSocket连接客户端,在src/App.js中:
import React, { useState, useEffect } from 'react';
function App() {
const [ws, setWs] = useState(null);
const [message, setMessage] = useState('');
useEffect(() => {
if (ws) {
ws.onmessage = (event) => {
setMessage(event.data);
};
}
}, [ws]);
return (
<div>
<input
type="text"
value={message}
onChange={(e) => setMessage(e.target.value)}
onKeyPress={(e) => {
if (e.key === 'Enter' && message) {
ws?.send(message);
setMessage('');
}
}}
/>
<button onClick={() => ws?.send('test_message')}>发送</button>
</div>
);
}
export default App;
启动WebSocket服务器
在项目根目录下,使用Node.js和Express.js搭建服务器,并启动WebSocket:
const express = require('express');
const WebSocket = require('ws');
const app = express();
const port = 3001;
app.use(express.static('public'));
const wss = new WebSocket.Server({ server: app });
wss.on('connection', (ws) => {
console.log('客户端连接');
ws.on('close', () => {
console.log('客户端断开连接');
});
});
app.listen(port, () => {
console.log(`服务器运行在http://localhost:${port}`);
});
启动服务器并测试
在项目根目录下运行:
npm run server
打开前端项目,输入http://localhost:3001访问,检查WebSocket连接是否正常。
使用Postman测试
在Postman中,打开ws://localhost:3001,设置为WebSocket协议,发送消息,验证是否能接收到响应。
部署服务器
使用PM2管理服务器:
pm2 start server.js pm2 save pm2 startup
配置Nginx反向代理:
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://localhost:3001;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
集成到项目中
在前端项目中使用ws库,并在package.json中添加依赖:
{
"dependencies": {
"ws": "^8.1."
}
}
错误处理
在前端代码中添加错误处理:
useEffect(() => {
if (ws) {
ws.onclose = () => {
console.log('WebSocket关闭');
};
}
}, [ws]);
try {
if (ws) {
ws.send(message);
}
} catch (error) {
console.error('发送失败:', error);
}
优化性能
使用React hooks和懒加载来优化前端性能,确保WebSocket连接不影响页面性能。
通过以上步骤,你可以成功连接前端项目到节点服务器,实现实时通信。









