Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Nodejs & socket io Error: listen EADDRINUSE

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.

like image 303
Ninjacu Avatar asked Dec 30 '13 14:12

Ninjacu


1 Answers

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
like image 96
Faisal Ameer Avatar answered Oct 05 '22 11:10

Faisal Ameer