1

我有以下代码允许用户加入房间开始聊天。

server.on('connect', function(data) {
  nickname = prompt('What is your name?');
  server.emit('join', {name : nickname, room : $('#roomid').val()});
  $('#events').append('<li>Welcome, ' + nickname + '!</li>');
});

但是,我担心的一个问题是:是什么阻止了用户使用数百个用户名发出“加入”,向聊天室发送垃圾邮件?我是实时编程的新手,所以我想知道我可以使用什么样的技术来防止这种行为。

4

1 回答 1

1

默认情况下阻止用户执行此操作并没有什么实际意义。您需要构建服务器端安全性来处理此类事情;一个很好的例子是 IRC,其中一些服务器设置了系统,可以限制或断开发送过多垃圾邮件的用户。考虑这些选项以获得服务器端的附加逻辑:

  1. 如果用户在一段时间内发出超过一定数量的事件,则限制用户(即在他们发送的事件被忽略的地方);如果他们经常或特别过度这样做,请断开他们/将他们列入黑名单。
  2. 忽略在不允许的状态下发出的事件;例如,在某处跟踪连接的套接字的用户名(即使用socket.set),如果他们发送另一个join事件,则丢弃它。
于 2012-07-16T16:26:28.193 回答