首页 > 解决方案 > 如何停止 Socket.io 垃圾邮件连接?

问题描述

我正在制作一个 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>

标签: javascriptnode.jssocket.io

解决方案


问题出在第 2 行。你正在推动stringie'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)
  })
})

推荐阅读