2016-05-05 17 views
2

node.jsを使って(テスト目的でTCP Client android appを使用して)クライアントからメッセージを受け取るTCPサーバーを作成しました。これを英雄に配備することは可能ですか? は、ここにあなたが見ることができるように、私はポート1337とルータによって割り当てられたIPアドレスへのTCPメッセージを送信するコードherokuにnode.js TCPサーバーをデプロイ

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

です。

ブラウザにlocalhost:5000と入力すると、コンソールからサーバーが受信したメッセージがコンソールに記録され、後でsocket.ioを使用してクライアントに送信されるhtmlページが表示されます。

ここでは2つのポートが使用されています。

これが英雄に配備された場合、ポート番号を交換するにはどうすればいいですか? IPアドレスを置き換える方法も?

すべてのヘルプは、私はそれがあるとして、それはHerokuの上で実行することができるとは思わない

答えて

0

を高く評価しています。外部に公開されているWebサーバー用のポートは、process.env.PORTに割り当てられています。 Socket.ioはWebサーバーと同じポートを使用する必要があります。

+0

返信いただきありがとうございます。私も同じ結論に達しました。あなたはコードが実行できる他のホスティングサービス[heroku以外]を知っていますか? –

+0

Digital OceanのようなAWSとVPSサービスは、1つのホスト上で複数のポートを実行できます。それは本当にポート80以外の別のポートで聞く必要がありますか?あなたはherokuでウェブソケットを使うことができます。 Socket.ioとExpressは同じhttpサーバーでリッスンできます。 – paolord

+0

私は、node.jsを初めて使っているので、あなたが言ったことを本当に理解できませんでした。私は、このnode.jsサーバにインターネット経由でtcpパケットを送信する電子ボードを持っています。このデータはサーバーによって受信され、httpサーバーによってブラウザーに送信されます。だから私はそれが2つのポートが必要と思う。 あなたのアドバイスに来てください:tcpとhttpサーバーの間のWebSocket、私は始めるのを助けるためにいくつかのソースコードに向かって私を導くことができます。 –

関連する問題