Sunday, 30 April 2017

Socket.io, Node.js and Heroku: can't connect to the Socket.io socket

The last days I've been searching around for a fix to this problem but I can't seem to find it. When I run the socket.io serverside locally there's no problem and my client application runs just fine. But when I move the serverside to Heroku I can't connect to it.

The client Side code (snippet):

public void connectSocket(){
    try {
        socket = IO.socket("https://mptestvliegvliegpew.herokuapp.com:29930"); //maybe link to a web server
        socket.connect();
    } catch (Exception e) {
        System.out.println(e);
    }
}

The node.js Server side code on Heroku:

var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var players = [];

//process.env.PORT || 8080
server.listen(process.env.PORT, function(){
    console.log("Server is now running...");
    console.log("Listening on port: " + process.env.PORT);
});

io.on('connection', function(socket){
    console.log("Player Connected!");
    socket.emit('socketID', { id: socket.id });
    socket.emit('getPlayers', players);
    socket.broadcast.emit('newPlayer', { id: socket.id });
    socket.on('playerMoved', function(data){
        data.id = socket.id;
        socket.broadcast.emit('playerMoved', data);

        for(var i = 0; i < players.length; i++) {
            if(players[i].id == data.id) {
                players[i].x = data.x;
                players[i].y = data.y;
            }
        }
    });

    socket.on('disconnect', function(){
        console.log("Player Disconnected");
        socket.broadcast.emit('playerDisconnected', { id: socket.id });
        for(var i = 0; i < players.length; i++){
            if(players[i].id == socket.id){
                players.splice(i, 1);
            }
        }
    });
    players.push(new player(socket.id, 0, 0));
});

function player(id, x, y){
    this.id = id;
    this.x = x;
    this.y = y;
}

Already went through most of the tutorials on Heroku (e.g. :https://devcenter.heroku.com/articles/node-websockets) but found nothing that helped my problem.

Hope you guys know more on the topic!



via Arno C

No comments:

Post a Comment