1

Im getting the error socket.io.js:2919 and net::err_connection_refused just looking to get this solved, thanks need to add more details to post this

heres the server socket code

var app = require('http').createServer(connectHandler),
    io = require('socket.io').listen(app),
    fs = require('fs');

app.listen(8080);

function connectHandler (req, res) {
  fs.readFile(__dirname + '/client.html',
  function (err, data) {
    if (err) {
      res.writeHead(500);
      return res.end('Error loading client.html');
    }

    res.writeHead(200);
    res.end(data);
  });
}

var members = [];
io.sockets.on('connection', function (socket) {
  socket.on('joined', function(data) {
    var mbr = data;
    mbr.id = socket.id;
    members.push(mbr);
    socket.broadcast.emit('joined', data);
    console.log(data.name, 'joined the room');
  });

  socket.on('message', function(data) {
    socket.broadcast.emit('message', data);
  });

  socket.on('disconnect', function() {
    for (var i = 0; i < members.length; i++) {
      if (members[i].id === socket.id) {
        socket.broadcast.emit('disconnected', { name: members[i].name });
      }
    }
  });
});

and here is the html socket client

<!doctype html>
<html>
<head>
    <script src="/socket.io/socket.io.js"></script>
</head>
<body>
    <div id="messages">
    </div>
    <form id="newChat">
        <textarea id="text"></textarea>
        <input type="submit" id="sendMessage" value="Send" />
    </form>
    <script>
        var socket = io.connect('http://localhost');
        var who;

        socket.on('connect', function() {
            var chatter = prompt('Please enter your name');
            chatter = (chatter === "" || chatter === null) ? "anon" : chatter;
            addChatter("you", "Joined");
            who = chatter;
            socket.emit('joined', { 
                name: chatter
            });

        });

        function addChatter(name, message) {
            var chat = document.getElementById("messages");
            chat.innerHTML += "<div>" + name + " - " + message + "</div>";
        }

        socket.on('joined', function(data) {
            console.log(data);
            addChatter(data.name, ' joined');
        });

        socket.on('disconnected', function(data) {
            addChatter(data.name, 'disconnected');
        });

1 Answer 1

2

The localhost connection in the html file can be established in the new version by:

var socket = io();

which will bind to the server by itself.

Please refer to http://socket.io/get-started/chat/

As a side note; starting the connection on the server can be done with :

io.on('connection' ...

instead of

io.sockets.on('connection' ...

var app = require('http').createServer(connectHandler),
    io = require('socket.io').listen(app),
    fs = require('fs');

function connectHandler (req, res) {
  fs.readFile(__dirname + '/client.html',
  function (err, data) {
    if (err) {
      res.writeHead(500);
      return res.end('Error loading client.html');
    }

    res.writeHead(200);
    res.end(data);
  });
}

var members = [];
io.on('connection', function (socket) {
        console.log(socket);
  socket.on('joined', function(data) {
    var mbr = data;
    mbr.id = socket.id;
    members.push(mbr);
    socket.broadcast.emit('joined', data);
    console.log(data.name, 'joined the room');
  });

  socket.on('message', function(data) {
    socket.broadcast.emit('message', data);
  });

  socket.on('disconnect', function() {
    for (var i = 0; i < members.length; i++) {
      if (members[i].id === socket.id) {
        socket.broadcast.emit('disconnected', { name: members[i].name });
      }
    }
  });
});

app.listen(8077);

<!doctype html>
<html>
<head>
        <script src="https://cdn.socket.io/socket.io-1.3.5.js"></script>
</head>
<body>
    <div id="messages">
    </div>
    <form id="newChat">
        <textarea id="text"></textarea>
        <input type="submit" id="sendMessage" value="Send" />
    </form>
    <script type="text/javascript">
        var socket = io();
        var who;

        socket.on('connect', function() {
            var chatter = prompt('Please enter your name');
            chatter = (chatter === "" || chatter === null) ? "anon" : chatter;
            addChatter("you", "Joined");
            who = chatter;
            socket.emit('joined', {
                name: chatter
            });

        });

        function addChatter(name, message) {
            var chat = document.getElementById("messages");
            chat.innerHTML += "<div>" + name + " - " + message + "</div>";
        }

        socket.on('joined', function(data) {
            console.log(data);
            addChatter(data.name, ' joined');
        });

        socket.on('disconnected', function(data) {
            addChatter(data.name, 'disconnected');
        });
    </script>

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.