簡體   English   中英

Node.js + Socket.io:嘗試使用套接字反垃圾郵件模塊時,出現EADDRINUSE錯誤

[英]Node.js + Socket.io: When trying to use socket-anti-spam module, EADDRINUSE error appears

我正在嘗試在我的 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
});

您嘗試在同一端口 (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');
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM