2016-05-12 70 views
0

私はセンサからデータを収集する電子ボードを持っています。それをWebサービスに送信してから、何らかの処理を行い、結果をWebサイトに送信しますURLが入力されます。私はこれに複数のポートを使用します。 1つのポートはUDP接続をリッスンし、他のポートはHTTPをリッスンします。コードはローカルマシン上で正常に動作します。ここで私はそれだけで一つのポートを許可するので、それは、Herokuの上でホストすることはできません知っているコードWeb /クラウド上の複数のポートnode.jsアプリケーションのデプロイ

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

です。

私のオプションは何ですか?

1)このウェブサイトのいくつかの回答によると、ウェブソケット。しかし、私はudpとhttpサーバーの間にwebsocketを設定する方法については全く知らない。ウェブサイトへのリンク/ githubはとても親切です。

2)複数のポートを許可するホスティングサービス。このサービスを提供するものはありますか?文書へのリンクは高く評価されます。

ありがとうございます。

答えて

0

あなたはこの

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

のようないくつかのことを行うと、あなたが別のポートで実行する必要があるたびにちょうど=

PORTを使用

app.listen(port); 

として、このポート変数を使用することができますノードapp.js

関連する問題