速率限製
最後您可能發現會有惡意用戶利用 Colyseus 的房間匹配程序來淹沒您的伺服器, 導致您的伺服器在沒有真實玩家使用的情況下一直在創建和刪除房間.
這種情況下我們建議使用 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 minutes
max: 100
});
app.use("/matchmake/", apiLimiter);
const rateLimit = require("express-rate-limit");
const apiLimiter = rateLimit({
windowMs: 15 * 60 * 1000, // 15 minutes
max: 100
});
app.use("/matchmake/", apiLimiter);
若您使用了反向代理(如 Heroku, Bluemix, AWS ELB, Nginx 等), 則必須同時啟用 "trust proxy"
// see https://expressjs.com/en/guide/behind-proxies.html
app.set('trust proxy', 1);