Socket.io + NodeJS não funciona no Heroku

Estou fazendo uma API e está no Heroku. Mas estou tendo alguns problemas com o socket.io apenas no lado heroku, quando testo no local, tudo corre bem. A API é completamente independente do front-end, portanto, eles estão em domínios diferentes (e em hosts diferentes). O problema é que, na produção, não consigo conectar os soquetes ...

Eu tenho algumas perguntas, todas sobre a configuração do socket.io no heroku. Eu sei que existem algumas postagens com algumas informações sobre isso, mas as postagens que encontrei foram com versões antigas do sockets.io ou versões antigas do heroku (o heroku parece ter alterado o material dos websockets em julho do ano passado):

Não sei se preciso ativar algo antes de executar o socket.io no heroku. Eu li alguns posts sobre isso, mas tudo parece ser antigo ... Tentei ativar o Websockets com:$ heroku labs:enable websockets mas a resposta que recebi foi:! No such feature: websockets.

Preciso especificar uma porta ou o Heroku possui uma porta automática para isso?

Preciso de duas conexões? Um para ouvir o POST / GET / PUT / DELETE e outro para as tomadas?

app.js

    var express = require('express');
    var app = module.exports = express();
    var port = process.env.PORT || 5000;
    var port_s = 3000;
    var server = require('http').createServer(express);
    ...
    app.listen(port);
    server.listen(port_s);

    require('./config/socket-io')(app, server, secret);
    app.post('/user', routes.users.register);
    ...

socket-io.js

module.exports = function(app, server, secret) {
    var clients = {};
    console.log("initiating sockets...");
    var sio = require('socket.io').listen(server);

    sio.sockets.on('connection', function (socket) {
        clients[socket.id] = socket;
        console.log("...new connection: "+socket.client.id);
        socket.emit('identification', { data : socket.client.id });

        socket.on('newShoutOut', function(data) {
            var receptor    = data.idTo;
            var emiter      = socket.client.id;
            //console.log("...new shout out from " +emiter+ " to "+receptor);
            var elem = findElement(sio.sockets['sockets'], 'id', receptor);
            sio.sockets.sockets[elem].emit('privateShoutout',{ data : data.data, from : emiter });
        });

        socket.on('disconnect', function() {
            //console.log("..."+socket.client.id + " disconnected");
        });
    });
};

function findElement(arr, propName, propValue) {
    for (var i=0; i < arr.length; i++) {
        if (arr[i].id === propValue)
            return i;
    };
}

Repito, tudo funciona no localhost. Tentei a API no localhost: 5000 e o aplicativo cliente no localhost: 80 e todos os soquetes funcionam bem.

Obrigado.

questionAnswers(1)

yourAnswerToTheQuestion