Javascript Node.js+;Socket.io:尝试使用Socket反垃圾邮件模块时,出现EADDRINUSE错误
我正在尝试在我的web应用程序中使用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
套接字反垃圾邮件
模块()。但是,当我尝试使用它时,会出现以下错误:
错误:侦听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');
});
我需要在我的代码中使用套接字反垃圾邮件模块。此答案不包括套接字反垃圾邮件模块。