Desplegando un servidor de node.js TCP en heroku

He creado un servidor TCP que recibe mensajes de un cliente (usando la aplicación de Android TCP Client para propósitos de prueba) usando node.js. ¿Es posible desplegar esto en heroku? Aquí está el código

var http = require('http') var express = require('express') var app = module.exports = express.createServer(); var net = require('net') var port = process.env.PORT || 5000 var routes = require('./routes') app.configure(function(){ app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.set('view options', {layout:false, pretty:true}); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(app.router); app.use(express.static(__dirname + '/public')); }); app.configure('development', function(){ app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); }); app.configure('production', function(){ app.use(express.errorHandler()); }); //ROUTES app.get('/',routes.index); var mainserver = net.createServer(function(socket) { console.log('connected'); socket.on('data',function(data){ console.log(data.toString()); io.sockets.emit('dummy',data.toString()); }); }); mainserver.listen(1337, '192.168.1.108'); var io = require('socket.io').listen(app); app.listen(port); 

Como puede ver, envío mensajes tcp al puerto 1337 y una dirección IP asignada por el enrutador.

Cuando escribo localhost: 5000 en mi navegador, obtengo una página html que solo registra en la consola el mensaje que el servidor recibe de la aplicación (y luego lo envía al cliente utilizando socket.io).

Hay dos puertos que se utilizan aquí.

Si esto se implementara en heroku, ¿cómo reemplazar los números de puerto? También cómo reemplazar la dirección IP?

Cualquier ayuda es apreciada

No creo que pueda funcionar en heroku como es. El único puerto que está expuesto al exterior que puede usar para el servidor web se asigna en process.env.PORT . Socket.io tendrá que usar los mismos puertos que el servidor web.