你如何阻止客户端Socket.io循环套接字排放?

时间:2015-10-24 01:06:39

标签: javascript node.js socket.io

假设我有一个名为'add'的socket.io事件,它接受0个参数,当在服务器端接收时,递增计数变量,然后向每个客户端发出新的计数值。如何阻止人们基本上打开JS控制台并使用如下循环:

for(var i = 0; i < 1000; i++) {
    socket.emit('add');
}

另一种可能更有意义的方案是:如何在聊天应用程序中检测洪水?

我完全明白,没有人可以真正做到确保客户端代码不被用户操纵。

如何为每个客户端的每个socketio事件处理程序添加某种形式的超时?

1 个答案:

答案 0 :(得分:0)

仅供验证:

为什么不使用lasttime = Date.now()扩充客户端并检查是否lasttime - Date.now() > fixedtimeout

或:

  

使用密钥val数组存储客户端地址以及先前的消息时间,然后检查时间之间的差异是否小于100毫秒

: - )