2017-05-12 2 views
1

私はherokuに新しく、私はherokuにmeteorjsアプリケーションを配備しました。私のMeteorjsアプリケーションはWebアプリケーションですので、ビルドが完了した後はポート80のherokuで実行されますが、同時にポートで聴いてみたいと思います:4000または任意のサードパーティiによって起動されたWebhookイベントをキャッチできます聞きたい私のローカルマシンでは、webappを実行しているポートとリスナー上で実行されている完璧に実行されますが、heroku上で私はそれを展開したwebappを実行し、リスナーは聞いていません。誰でも私を助けたり、私を導くことができます。すべての新しいソリューションは、また、私はFacebookのボット・メッセンジャーのボットのインスタンスを作り、以下の私のクライアントでは、リスナーウェブポート80がすでに使用中の場合、ヒロクの任意のポートでリスンする方法はありますか?

bot.listen(4000); 

を開始するためのコードでいる私のサーバー/ main.jsで..

を歓迎しています/main.html私はローカルマシン上だけでHello Worldの

あるHTMLコードを持っている私はhttp://localhost:3000を訪れたとき、私はhttps://appname.herokuapp.comを訪れたときのHelloWorldアプリもHerokuの上のポート4000

をリッスンしている私が見る見ることができますこんにちは世界 。この場合、ポートは80ですが、ボットはポート4000のhttps://appname.heroku.comに発信するポストコールが応答しないため、リッスンしません。

+0

質問を編集して、聞いている場所にコードを含めることはできますか?通常、任意の数のサーバーエンドポイントを作成できます。 – tadman

+0

質問を編集しました。新しいソリューションは私にも役立ちます..今日はherokuで始まりました。私はherokuまたは私のコードでこれを実行するにはどうすればよいのか分かりません。 – Chetan

答えて

2

Herokuがポートを割り当てているため、自分でポートを割り当てることはできません。環境変数PORTからポート番号を読み取る必要があります。ノードでは、これはprocess.env.PORT

です。また、asとORには||を使用できます。たとえば、以下のような場合、Herokuでは環境変数からポート番号を読み込みますが、ローカルではデフォルトでポート4000になります。

const app = express(); 
app.set('port', (process.env.PORT || 4000)); 

//Start Server 
app.listen(app.get('port'), function() { 
    console.log('Node app is running on port', app.get('port')); 
}); 
関連する問題