このMeteor Appサーバーコードは、別のMeteorワーカーのメソッドを使用しようとします。アプリとワーカーの両方が同じサーバーEC2上の別々のドッカーコンテナにあります。
stream error Network error: ws://localhost:9000/websocket: connect ECONNREFUSED 127.0.0.1:9000
同じホスト上のコンテナ間のMeteor DDP呼び出し
appCallingWorker
を起動すると、私は文字列「アプリケーションから呼び出された労働者を」労働者コンテナのログを参照することが期待しかし
docker logs containerID
が与えるすべてはこのように見ている多くの行でポート9000
上で実行されています
どのようにして、アプリケーションからワーカーのメソッドを使用できますか? THX
//App/server/main.js
let workerConn = DDP.connect('http://localhost:9000');
Meteor.methods({
'appCallingWorker':() => {
workerConn.call('workerMethod');
}
});
//Worker/server/main.js
Meteor.methods({
'workerMethod': function() {
console.log('worker called from App');
}
})
編集
EC2は、AWS ECSでコンテナインスタンスです。言って9000でリッスンコンテナのIPを示しドッキングウィンドウのホスト上で編集2
のiptables -L -nを
9000に及びcontainerDefinitions.portMapings.containerPortとHOSTPORTの両方が設定されている、私はコードではlocalhostを置き換えipと今すぐ動作します。しかし、ホストの再起動やコンテナの再起動によってipが変更される可能性があります。
接続が拒否されました。つまり、localhost:9000でリッスンすることはありません。あなたのアプリケーションが別々のドッカーコンテナにある場合、それらは独自のIPを持っていますか、それに接続しようとしていますか? – Mikkel
@Mikkel私は私の記事の編集であなたに良い意見に答えました。あなたの入力のためのthx。私のプロセスが完了していない場合は、さらに情報を提供してください。 –
あなたがしたのは、localhostを127.0.0.1に置き換えたものです。これは有効なネットワークアドレスではありません。 – Mikkel