速率限制
您可能发现总有恶意用户利用 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);