【发布时间】:2021-12-13 17:17:47
【问题描述】:
我正在使用 socket.io 制作多人游戏。这是我的服务器代码的一部分。
io.on('connection', (socket) => {
console.log("socket has connected!!")
socket.on("go", (name) => {
addPlayer(name);
})
socket.on("move", (angle) => {
//do movement stuff
})
})
现在人们通过创建垃圾邮件套接字使我的服务器崩溃。他们正在打开控制台并在客户端中输入此代码:
setInterval(() => {
var socket = io()
socket.emit("go", "haha ugothacked")
},10)
这会每秒创建 100 个玩家,最终导致我的服务器崩溃。我该如何防止这种情况。我知道你必须使用某种速率限制。我不知道如何获取socket的ip。
我正在使用 socket.io v4
我该怎么做?
【问题讨论】:
-
这些都不适合我。我已经尝试了所有这些
-
是你无法获取他们的IP地址还是它不断变化的问题?您使用的是什么版本的节点/套接字?
-
nodejs 16,socket v4.1,我没有他们的ip,我如何限制它。
标签: javascript node.js sockets socket.io spam-prevention