环境准备
在开始之前,我们需要准备好基础的开发环境。请确保已安装 Node.js(建议 v14.0 以上版本)和 Python。此外,为了实现内网穿透,你需要下载并配置一个 FRP 客户端(如 frpc),这能让你从外网访问本地服务。
利用 AI 加速开发流程
现代 AI 编程助手能极大提升原型开发效率。你可以尝试向 AI 描述你的需求,例如:
"我需要写一个智能头盔管理系统,前后端分离。后端用 Node.js,接口清晰;前端不用框架,纯 HTML/JS/CSS,文件独立。第一步先搭建 WebSocket 服务器,支持前端自定义地址连接,默认逻辑是接收数据后转发。"
不同的工具(如 Cursor、Codex 等)可能有细微差别,但核心思路一致:明确技术栈和业务逻辑。
项目结构规划
合理的目录结构能让维护更简单。我们可以按以下布局组织代码:
helmet-system/
├── package.json # 项目配置
├── node_modules/ # 依赖库
├── backend/ # 后端代码
│ └── server.js # 核心服务器
└── frontend/ # 前端代码
├── index.html # 页面结构
├── style.css # 样式表
└── script.js # 交互逻辑
初始化与依赖安装
在项目根目录下打开终端,执行以下命令初始化项目并安装必要的 WebSocket 库:
npm init -y
npm install ws
这里我们只引入了 ws 作为唯一的外部依赖,保持项目轻量。
后端实现:HTTP 与 WebSocket 共存
后端的核心任务是同时提供静态网页服务和实时数据转发。下面是一个极简的 server.js 实现:
const http = require('http');
const fs = require('fs');
const path = require('path');
const WebSocket = require('ws');
const PORT = 8080;
// 文件类型映射
const = {
: ,
: ,
: ,
:
};
server = http.( {
filePath = req. === ? : req.;
fullPath = path.(__dirname, , filePath);
extname = path.(fullPath);
contentType = [extname] || ;
fs.(fullPath, {
(err) {
(err. === ) {
res.();
res.();
} {
res.();
res.();
}
} {
res.(, { : contentType });
res.(content, );
}
});
});
wss = .({ server });
wss.(, {
ip = req..;
.();
ws.(, {
msgString = message.();
.();
wss..( {
(client !== ws && client. === .) {
client.(msgString);
}
});
});
});
server.(, {
.();
.();
.();
.();
});


