繁体   English   中英

如何停止Socket.io垃圾邮件连接?

[英]How do I stop Socket.io spaming connections?

我正在制作一个socket.io聊天应用程序。 当我启动服务器或进行第一个连接时,它将向回调发送垃圾邮件。 直到服务器停止,回调才会停止。 我认为该错误来自html文件,但我不确定。 感谢您的时间。
IO回调:

io.sockets.on('connection', (socket) =>{
  connections.push('socket')
  console.log('Connection made \n ' + connections.length + ' made')

  socket.on('disconnect', function(data){
  connections.splice(connections.indexOf(socket), 1)
  console.log('Disconnected: %s sockets left', connections.length)
  })
})

我的HTML文件:

<!DOCTYPE html>
<html>
  <head>
    <title>Chat App</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.2.0/socket.io.js"></script>
    <script src="https://code.jquery.com/jquery-latest.min.js"></script>
    <style>
        body{
          margin: 30px;
        }
    </style>
  </head>
  <body>
    <div class="container">
      <div class="row">
        <div class="col-md-4">
          <div class="well">
            <h3>Online Users</h3>
            <ul class="list-group" id="users"></ul>
          </div>
        </div>
        <div class="col-md-8">
          <div class="chat" id="chat"></div>
          <form id="messageForm">
            <div class="form-group">
              <label>Enter Message</label>
              <textarea id="message" class="form-control"></textarea>
              <br>
              <input type="submit" class="btn btn-primary" value="Send">
            </div>
          </form>
        </div>
      </div>
    </div>
      <script>
        var socket = io()
      </script>
  </body>
</html>

问题在第2行上 您正在将string'socket' connections 'socket'在参数中未引用socket变量。 您需要推送socket而不是'socket'因为它只是字母的组合而不可变

io.sockets.on('connection', (socket) =>{
  connections.push(socket) // this line is changed
  console.log('Connection made \n ' + connections.length + ' made')

  socket.on('disconnect', function(data){
  connections.splice(connections.indexOf(socket), 1)
  console.log('Disconnected: %s sockets left', connections.length)
  })
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM