Javascript Node.js+;Socket.io:尝试使用Socket反垃圾邮件模块时,出现EADDRINUSE错误

Javascript Node.js+;Socket.io:尝试使用Socket反垃圾邮件模块时,出现EADDRINUSE错误,javascript,node.js,socket.io,Javascript,Node.js,Socket.io,我正在尝试在我的web应用程序中使用套接字反垃圾邮件模块()。但是,当我尝试使用它时,会出现以下错误: 错误:侦听EADDRINUSE::3000 下面是我的代码: var express = require("express"); var socket = require("socket.io"); var socketListen = socket.listen(3000); var bodyParser = require('body-parser'); var cors = requi

我正在尝试在我的web应用程序中使用
套接字反垃圾邮件
模块()。但是,当我尝试使用它时,会出现以下错误:

错误:侦听EADDRINUSE::3000

下面是我的代码:

var express = require("express");
var socket = require("socket.io");
var socketListen = socket.listen(3000);

var bodyParser = require('body-parser');
var cors = require('cors');
var SocketAntiSpam = require("socket-anti-spam");

require('dotenv').config({ path: 'variable.env' });

// Initialize Node.JS application
var app = express();
var server = app.listen(process.env.PORT || 3000);
app.use(express.static("public", {
    dotfiles: 'allow'
}));
app.use(cors());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

const socketAntiSpam = new SocketAntiSpam({
    banTime:            30,         // Ban time in minutes
    kickThreshold:      2,          // User gets kicked after this many spam score
    kickTimesBeforeBan: 1,          // User gets banned after this many kicks
    banning:            true,       // Uses temp IP banning after kickTimesBeforeBan
    io:                 socketListen,  // Bind the socket.io variable
});

您尝试在同一个端口(3000)上侦听两次,这就是为什么会出现“地址正在使用”错误的原因

尝试以下方法:

const SocketAntiSpam  = require('socket-anti-spam')
const app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);

const listen = server.listen(3000);

const socketAntiSpam = new SocketAntiSpam({
  banTime:            30,
  kickThreshold:      2,
  kickTimesBeforeBan: 1,
  banning:            true,
  io:                 io,
})

io.on('connection', function(socket){
  console.log('a user connected');
  socket.on('spam', (data) => {
    console.log(data);
  })
});

app.get('/hello', (request, response) => {
  response.send('ok');
});

我需要在我的代码中使用套接字反垃圾邮件模块。此答案不包括套接字反垃圾邮件模块。