Nodejs & socket io Error: listen EADDRINUSE
Solution 1
If you cannot start the application at all you might have an application that is already using the given port. Another option is to try and use another port and see if you can start it.
Check @Faisal Ameers answer for linux commands to find program using port.
Check this post for finding the program using the port on windows: https://stackoverflow.com/a/48199/1958344
And this one for OS X: https://stackoverflow.com/a/30029855/1958344
Solution 2
It means the address you are trying to bind the server to is in use. Do this;
Command:
ps -eaf|grep node
Output:
root 28029 27332 0 14:25 pts/2 00:00:03 node myVNC.js
This shows you the Process id where node is running, which in this case is "28029"
Now kill this process id using;
kill -9 28029
Solution 3
best way to kill server and restart with a kill.sh file
Solution 4
Perhaps it's because you're calling listen(port)
twice. The second listen() may be throwing EADDRINUSE because the first listen() is using the port already.
server.listen(port);
var io = sio.listen(server, { log:true });
Related videos on Youtube
Ninjacu
Updated on September 15, 2022Comments
-
Ninjacu over 1 year
I am giving a try to do a chat with Node.js and socket.io
Now here is my scenario I am using ubuntu 12.04 user and i have folder pp on desktop
inside that i am putted server file
server.js
Here is the client:
$(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); }); });
And here the server
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("");
Now in the same folder I have an html file like
<!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>
when i am trying to run the app.js useing node like
node server.js
I am getting the error
warn - error raised: Error: listen EADDRINUSE
I try to restart all but it doesn't works
Please tell me what might I am doing wrong.
-
Romain Meresse over 10 years
-
-
l0b0 about 9 yearsThat all looks fine until you look at the actual code and realise it's running
kill -9
, which is a bad idea.