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

问题描述 投票:0回答:1

我正在尝试在Web应用程序中使用socket-anti-spam模块(https://github.com/michaeldegroot/socket-anti-spam)。但是,当我尝试使用它时,出现以下错误:

错误:听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
});
javascript node.js socket.io
1个回答
0
投票

您尝试在同一端口(3000)上侦听两次,这就是为什么您收到“地址使用中”错误的原因。

尝试类似的东西:

var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);

server.listen(80);
© www.soinside.com 2019 - 2024. All rights reserved.