繁体   English   中英

Web /云上的多个端口node.js应用程序部署

[英]Multiple ports node.js application deployment on web/cloud

我有一个电子板,它从传感器收集数据,我希望将它发送到一个Web服务,然后进行一些处理,并在输入URL时将结果发送到网站。 我为此使用多个端口。 一个端口侦听UDP连接,另一个端口用于HTTP。 代码在我的本地机器上运行正常。 这是代码

var net = require('net')
   ,dgram = require('dgram')
   ,express = require('express')  
   ,io = require('socket.io')
   ,routes = require('./routes')
   ,http = require('http')
   ,fs = require('fs');

var app = module.exports = express.createServer();
var HOST = '192.168.0.132'
var PORT = 1337
var datarr = []

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

//UDP Server
var decoder = new (require('string_decoder').StringDecoder)('utf-8')
var buffer = '';
var server = dgram.createSocket('udp4');

    server.on('listening',function() {
       console.log('Listening');
    });
    server.on('message', function(data,rinfo) {
            console.log(decoder.write(data));
            io.sockets.emit('data',decoder.write(data));
    });
    server.on('close', function(data) {
        console.log('closed');
    });
server.bind(1337,'192.168.0.132');

//UDP server ends

var io=require('socket.io').listen(app);
app.listen(1185);

io.sockets.on('connection',function (socket) {
    console.log('Hello Got a connection');

});

console.log("server listening");

我知道它不能托管在heroku上,因为它只允许一个端口。

我有什么选择?

1)根据本网站上的一些答案,websockets。 但我不知道如何在udp和http服务器之间设置websocket。 任何指向website / github的链接都非常有用。

2)允许多个端口的托管服务。 有没有提供这项服务? 将非常感谢与文件的链接。

提前致谢。

你可以做这样的事情

var port = process.env.PORT || 1185;

然后使用此端口变量作为

app.listen(port);

每当你需要在不同的端口上运行时才使用

PORT =节点app.js

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM