Skip to content

速率限制

您可能发现总有恶意用户利用 Colyseus 的 matchmaking 服务进行攻击, 导致您的服务器在不断创建和删除房间却不是为正式玩家服务.

这种情况下建议使用 express-rate-limit 中间件来拦截来自同一来源的大量请求. 更多详情参见 express-rate-limit 的 README.

npm install --save express-rate-limit

用法

import rateLimit from "express-rate-limit";

const apiLimiter = rateLimit({
  windowMs: 15 * 60 * 1000, // 15 分钟
  max: 100
});
app.use("/matchmake/", apiLimiter);
const rateLimit = require("express-rate-limit");

const apiLimiter = rateLimit({
  windowMs: 15 * 60 * 1000, // 15 分钟
  max: 100
});
app.use("/matchmake/", apiLimiter);

若您使用了反向代理 (如 Heroku, Bluemix, AWS ELB, Nginx 等), 则必须同时开启 "trust proxy"

// 参见 https://expressjs.com/en/guide/behind-proxies.html
app.set('trust proxy', 1);

Back to top