Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8389505
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 9, 20262026-06-09T18:44:45+00:00 2026-06-09T18:44:45+00:00

Messing about with Node.js and a bit nonplussed that I can’t get something this

  • 0

Messing about with Node.js and a bit nonplussed that I can’t get something this simple working. This code works fine on my local server, but the chat doesn’t work on Heroku. If I enter something, nothing happens. I’ve checked the Heroku logs and they look fine.

package.json

{
     "name": "mukhin_chat",
     "description": "example chat application with socket.io",
     "version": "0.0.1",
     "dependencies": {
        "express": "2.4.6",
        "socket.io": "0.8.4"
     },
    "engines": {
    "node": "0.8.x",
    "npm": "1.1.x"
  }
}

app.js

// Variable port setting for heroku

var port = process.env.PORT || 3000;

var app = require('express').createServer()
var io = require('socket.io').listen(app);

app.listen(port);

// Heroku setting for long polling - assuming io is the Socket.IO server object
io.configure(function () { 
  io.set("transports", ["xhr-polling"]); 
  io.set("polling duration", 10); 
});

// routing
app.get('/', function (req, res) {
  res.sendfile(__dirname + '/index.html');
});

// usernames which are currently connected to the chat
var usernames = {};

io.sockets.on('connection', function (socket) {

    // when the client emits 'sendchat', this listens and executes
    socket.on('sendchat', function (data) {
        // we tell the client to execute 'updatechat' with 2 parameters
        io.sockets.emit('updatechat', socket.username, data);
    });

    // when the client emits 'adduser', this listens and executes
    socket.on('adduser', function(username){
        // we store the username in the socket session for this client
        socket.username = username;
        // add the client's username to the global list
        usernames[username] = username;
        // echo to client they've connected
        socket.emit('updatechat', 'SERVER', 'you have connected');
        // echo globally (all clients) that a person has connected
        socket.broadcast.emit('updatechat', 'SERVER', username + ' has connected');
        // update the list of users in chat, client-side
        io.sockets.emit('updateusers', usernames);
    });

    // when the user disconnects.. perform this
    socket.on('disconnect', function(){
        // remove the username from global usernames list
        delete usernames[socket.username];
        // update list of users in chat, client-side
        io.sockets.emit('updateusers', usernames);
        // echo globally that this client has left
        socket.broadcast.emit('updatechat', 'SERVER', socket.username + ' has disconnected');
    });
});

index.html

<script src="/socket.io/socket.io.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script>
    var socket = io.connect('http://localhost:8080');

    // on connection to server, ask for user's name with an anonymous callback
    socket.on('connect', function(){
        // call the server-side function 'adduser' and send one parameter (value of prompt)
        socket.emit('adduser', prompt("What's your name?"));
    });

    // listener, whenever the server emits 'updatechat', this updates the chat body
    socket.on('updatechat', function (username, data) {
        $('#conversation').append('<b>'+username + ':</b> ' + data + '<br>');
    });

    // listener, whenever the server emits 'updateusers', this updates the username list
    socket.on('updateusers', function(data) {
        $('#users').empty();
        $.each(data, function(key, value) {
            $('#users').append('<div>' + key + '</div>');
        });
    });

    // on load of page
    $(function(){
        // when the client clicks SEND
        $('#datasend').click( function() {
            var message = $('#data').val();
            $('#data').val('');
            // tell server to execute 'sendchat' and send along one parameter
            socket.emit('sendchat', message);
        });

        // when the client hits ENTER on their keyboard
        $('#data').keypress(function(e) {
            if(e.which == 13) {
                $(this).blur();
                $('#datasend').focus().click();
            }
        });
    });

</script>
<div style="float:left;width:100px;border-right:1px solid black;height:300px;padding:10px;overflow:scroll-y;">
    <b>USERS</b>
    <div id="users"></div>
</div>
<div style="float:left;width:300px;height:250px;overflow:scroll-y;padding:10px;">
    <div id="conversation"></div>
    <input id="data" style="width:200px;" />
    <input type="button" id="datasend" value="send" />
</div>

Procfile

web: node app.js

Logs

2012-08-15T01:24:03+00:00 heroku[web.1]: State changed from up to starting
2012-08-15T01:24:03+00:00 heroku[slugc]: Slug compilation finished
2012-08-15T01:24:05+00:00 heroku[web.1]: Starting process with command `node app.js`
2012-08-15T01:24:05+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2012-08-15T01:24:07+00:00 heroku[web.1]: Process exited with status 1
2012-08-15T01:24:08+00:00 app[web.1]:    info  - socket.io started
2012-08-15T01:24:09+00:00 heroku[web.1]: State changed from starting to up
2012-08-15T01:24:21+00:00 heroku[router]: GET still-bastion-7144.herokuapp.com/ dyno=web.1 queue=0 wait=0ms service=23ms status=200 bytes=1774
2012-08-15T01:24:21+00:00 app[web.1]:    debug - served static /socket.io.js
2012-08-15T01:24:21+00:00 heroku[router]: GET still-bastion-7144.herokuapp.com/socket.io/socket.io.js dyno=web.1 queue=0 wait=0ms service=15ms status=200 bytes=95997
2012-08-15T01:24:23+00:00 heroku[router]: GET still-bastion-7144.herokuapp.com/favicon.ico dyno=web.1 queue=0 wait=0ms service=3ms status=404 bytes=34
2012-08-15T01:24:45+00:00 heroku[router]: GET still-bastion-7144.herokuapp.com/ dyno=web.1 queue=0 wait=0ms service=7ms status=200 bytes=1774
2012-08-15T01:24:45+00:00 app[web.1]:    debug - served static /socket.io.js
2012-08-15T01:24:45+00:00 heroku[router]: GET still-bastion-7144.herokuapp.com/socket.io/socket.io.js dyno=web.1 queue=0 wait=0ms service=18ms status=200 bytes=95997
2012-08-15T01:24:50+00:00 heroku[router]: GET still-bastion-7144.herokuapp.com/ dyno=web.1 queue=0 wait=0ms service=6ms status=304 bytes=0
2012-08-15T01:24:51+00:00 app[web.1]:    debug - served static /socket.io.js
2012-08-15T01:24:51+00:00 heroku[router]: GET still-bastion-7144.herokuapp.com/socket.io/socket.io.js dyno=web.1 queue=0 wait=0ms service=14ms status=200 bytes=95997
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-09T18:44:46+00:00Added an answer on June 9, 2026 at 6:44 pm

    In your client code you’re trying to connect to port 8080, which is inconsistent with the port your server is listening on.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Node.js can't handle my client code that performs something similar to jQuery/Zepto XHR pattern
Messing about a bit, i have a working Adobe After Effects plugin with a
I've been messing about a bit to try and get my debugger (VS2010) to
Ok, messing about with classes in PHP and can't get it to work the
Been trying to get the Jquery plugin Easy Slider 1.7 working. been messing about
After messing about with F# there are some really nice features that I think
Im just messing around with Ruby on Rails and HTML. This question isn't about
This one seems so simple, but I must be missing something... Given this SQL:
I have a tricky problem that I've been messing about with for a few
I know that this question is being asked before but I did not get

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.