Skip to content

Repository files navigation

积木小院(tang)

堂堂的游戏 —— 网页休闲小游戏合集(捉迷藏、地鼠、我的世界、俄罗斯方块、天梯、军棋),支持 HTTP 联机对战。

本地运行

npm install
npm start            # 默认 http://localhost:3015
npm test

浏览器打开 http://localhost:3015 即可。单机模式与联机(同域 /api/mp)均可用。

部署到 Vercel(推荐)

整站可 直接 部署到 Vercel,无需自建 Socket 服务器 / nginx / pm2。

  1. 将仓库导入 Vercel
  2. Framework Preset 选 Other
  3. 保持默认(vercel.json 已配置 public 静态目录 + /api/* 函数)
  4. 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/ 目录仅作历史参考。

Releases

Packages

Contributors

Languages