在heroku上部署node.js TCP服务器

时间:2016-05-05 05:40:52

标签: node.js sockets heroku

我创建了一个TCP服务器,它使用node.js从客户端接收消息(使用TCP Client android app进行测试)。是否可以在heroku上部署它? 这是代码

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);

如您所见,我将tcp消息发送到端口1337以及由路由器分配的IP地址。

当我在浏览器上键入localhost:5000时,我得到一个html页面,只是控制台记录服务器从应用程序收到的消息(稍后使用socket.io将其发送到客户端)。

这里使用了两个端口。

如果要在heroku上部署,如何更换端口号?还有如何更换IP地址?

感谢任何帮助

1 个答案:

答案 0 :(得分:0)

我不认为它可以在heroku上运行。可以在process.env.PORT上分配唯一可以用于Web服务器的外部端口。 Socket.io必须使用与Web服务器相同的端口。