Nodejs&套接字io错误:听EADDRINUSE

我正在尝试与Node.js和socket.io进行聊天

现在,这里是我使用Ubuntu 12.04用户,我有桌面上的文件夹PP

里面,我把服务器文件server.js

这里是客户端:

 $(document).ready(function() { var urlServer = location.origin + ':8081'; var socket = io.connect(urlServer); }); $(document).ready(function() { var urlServer = location.origin + ':8081'; var socket = io.connect(urlServer); $("#boton").on('click', function() { var mensaje = $("#mensaje").val(); socket.emit("mensaje", {msg: mensaje}); }); socket.on("mensaje", function(msg) { console.log("hemos recibido un mensaje", msg); }); }); 

在这里的服务器

 var server = require('http').createServer(), sio = require('socket.io'), port = 8081; server.listen(port); var io = sio.listen(server, { log:true }); var channels = {}; io.sockets.on('connection', function (socket) { console.log("Cliente conectado"); socket.on('mensaje', function (msg) { console.log(msg); socket.broadcast.emit('mensaje', msg); }); }); console.log('1- Escuchando en http://localhost:' + port , ""); console.log(""); 

现在在同一个文件夹中我有一个html文件

 <!DOCTYPE html> <html> <head> <script src="../jquery.js"></script> <script src="../node_modules/socket.io/node_modules/socket.io-client/dist/socket.io"></script> <script src="clientechat.js.js"></script> <title>Chat con Node</title> </head> <body> <div id="mensajes"></div> <input type="text"> <input type="submit" id="boton"> </body> </html> 

当我试图运行app.js使用节点

 node server.js 

我收到错误

  warn - error raised: Error: listen EADDRINUSE 

我尝试重新启动所有,但它不起作用

请告诉我,我在做什么错了。

如果根本无法启动应用程序,则可能有一个已在使用给定端口的应用程序。 另一个select是尝试使用另一个端口,看看是否可以启动它。

检查@Faisal Ameers回答linux命令find使用端口的程序。

检查这个职位,find使用Windows上的端口程序: https : //stackoverflow.com/a/48199/1958344

而这一个OS X的: https : //stackoverflow.com/a/30029855/1958344

这意味着您尝试绑定服务器的地址正在使用中。 做这个;

 Command: ps -eaf|grep node Output: root 28029 27332 0 14:25 pts/2 00:00:03 node myVNC.js 

这显示了你正在运行节点的进程ID,在这个例子中是“28029”

现在杀死这个进程ID使用;

 kill -9 28029 

杀死服务器并用kill.sh文件重新启动的最好方法

也许是因为你正在调用listen(port)两次。 第二个listen()可能会抛出EADDRINUSE,因为第一个listen()已经在使用该端口了。

server.listen(port); var io = sio.listen(server, { log:true });

它看起来像你的服务器设置是不正确的。 看看这个例子,你可以一起使用你的HTTP服务器的socket.io:Nodejs& 套接口io:警告 – 错误引发:错误:听EADDRINUSE