堂堂的游戏 —— 网页休闲小游戏合集(捉迷藏、地鼠、我的世界、俄罗斯方块、天梯、军棋),支持 HTTP 联机对战。
npm install
npm start # 默认 http://localhost:3015
npm test浏览器打开 http://localhost:3015 即可。单机模式与联机(同域 /api/mp)均可用。
整站可 直接 部署到 Vercel,无需自建 Socket 服务器 / nginx / pm2。
- 将仓库导入 Vercel
- Framework Preset 选 Other
- 保持默认(
vercel.json已配置public静态目录 +/api/*函数) - Deploy
部署后:
- 静态页面:
https://你的域名/ - 联机 API:
https://你的域名/api/mp - 健康检查:
https://你的域名/api/health
说明:联机改为 HTTP 短轮询(约 450ms),不再使用 WebSocket/Socket.IO,以适配 Vercel Serverless。
房间状态保存在函数实例内存中;冷启动或扩到多实例时,极低概率出现房间不同步。轻度联机足够;若要做大规模对战,可再接入 Redis(Upstash)做共享状态。
| 变量 | 默认 | 说明 |
|---|---|---|
PORT |
3015 |
仅本地 npm start |
ALLOWED_ORIGIN |
* |
CORS;生产可设为你的站点域名 |
前端如需指定联机地址,可在页面里设置:
<script>window.MP_API_BASE = 'https://你的域名';</script>public/ # 静态前端(Vercel 输出目录)
js/02-socket-shim.js # HTTP 联机客户端(Socket.IO 兼容 API)
js/02-net-lobby.js # 大厅 / 房间 UI
api/
mp.js # Vercel 联机 API
health.js
server/
index.js # 本地 Express(静态 + /api/mp)
mp-http.js # 联机协议(本地与 Vercel 共用)
lib/ # 状态、军棋、校验
vercel.json
浏览器 --POST/GET /api/mp--> Serverless / Express
(事件 + 轮询信箱) 内存房间状态 + 军棋权威裁决
原「Vercel 前端 + 腾讯云 Socket.IO」双端部署已废弃;deploy/ 目录仅作历史参考。