express socket.io端口3000已在使用中

时间:2018-09-04 06:37:46

标签: express react-native socket.io nodemon

我想在React-Native上制作实时聊天应用

我有后端快递

enter image description here

现在,我想在express后端中使用socket.io,但是在app.js中却不想使用,我想在socketmessage.js中使用socket.io,因为我有更多的api这个文件

但是请给我这个错误;端口3000已在使用中

我该如何解决此问题?

我在socketmessage.js中将此代码用于socket.io

var express = require('express');
var http = require('http');
var router = express.Router();
var socketio = require('socket.io');

var app = express();
var server = http.Server(app);
var websocket = socketio(server);
server.listen(3000, () => console.log('listening on *:3000'));

// The event will be called when a client is connected.
websocket.on('connection', (socket) => {
  console.log('A client just joined on', socket.id);
});

module.exports = router;

2 个答案:

答案 0 :(得分:1)

计算机上的端口3000可能已被其他进程使用。请按照以下命令释放端口。

lsof -i :3000

上面的命令使用结果中的PID列出进程,执行以下命令:

kill -9 PID

现在重新启动您的应用程序。

在Windows上

netstat -a -n -o | find "3000"

Taskkill /PID <PIDNumber> /F

答案 1 :(得分:0)

对于Windows:

步骤1 :在命令行中,键入以下命令:

netstat -ano | findstr yourPortNumber

这将给出PID,它是进程标识符

步骤2 :通过键入以下命令来终止任务:

taskkill / PID yourPIDNumber

第3步:如果第二步不起作用,则将/ F附加到第二个命令中,如下所示:

taskkill / PID yourPIDNumber / F