【问题标题】:Deploying a node.js TCP server on heroku在 heroku 上部署 node.js TCP 服务器
【发布时间】:2016-08-30 19:20:25
【问题描述】:

我创建了一个 TCP 服务器,它使用 node.js 从客户端接收消息(使用 TCP Client android 应用程序进行测试)。可以在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地址?

感谢任何帮助

【问题讨论】:

    标签: node.js sockets heroku


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回复。我也得出了同样的结论。你知道任何其他托管服务[除了heroku],代码可以在哪里运行?
    • AWS 和 VPS 服务(如 Digital Ocean)可以在一台主机上运行多个端口。它是否必须真正侦听端口 80 以外的其他端口?你可以在heroku上使用websockets。 Socket.io 和 Express 将能够在同一个 http 服务器上进行监听。
    • 对不起,我对node.js有点陌生,所以不太明白你说的。我有一个电子板,它通过 Internet 向这个 node.js 服务器发送 [或至少我希望] tcp 数据包。该数据由服务器接收并通过 http 服务器发送到浏览器。所以我认为它需要两个端口。提出您的建议:tcp 和 http 服务器之间的 websockets,您能否指导我获取一些源代码以帮助我入门。
    猜你喜欢
    • 2013-09-07
    • 1970-01-01
    • 2018-06-13
    • 2020-07-31
    • 2018-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-05
    相关资源
    最近更新 更多