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の上で実行することができるとは思わない
返信いただきありがとうございます。私も同じ結論に達しました。あなたはコードが実行できる他のホスティングサービス[heroku以外]を知っていますか? –
Digital OceanのようなAWSとVPSサービスは、1つのホスト上で複数のポートを実行できます。それは本当にポート80以外の別のポートで聞く必要がありますか?あなたはherokuでウェブソケットを使うことができます。 Socket.ioとExpressは同じhttpサーバーでリッスンできます。 – paolord
私は、node.jsを初めて使っているので、あなたが言ったことを本当に理解できませんでした。私は、このnode.jsサーバにインターネット経由でtcpパケットを送信する電子ボードを持っています。このデータはサーバーによって受信され、httpサーバーによってブラウザーに送信されます。だから私はそれが2つのポートが必要と思う。 あなたのアドバイスに来てください:tcpとhttpサーバーの間のWebSocket、私は始めるのを助けるためにいくつかのソースコードに向かって私を導くことができます。 –