gpt4 book ai didi

meteor - 同一主机上容器之间的 meteor DDP调用

转载 作者:行者123 更新时间:2023-12-02 20:17:49 26 4
gpt4 key购买 nike

此Meteor App服务器代码尝试使用另一个Meteor worker 的方法。应用程序和工作程序都位于同一服务器EC2上的单独docker容器中。工作服务器正在端口9000上运行。
当应用程序触发方法appCallingWorker时,我希望看到辅助容器注销字符串“从应用程序调用的 worker ”,但是docker logs containerID给出的所有内容如下所示:stream error Network error: ws://localhost:9000/websocket: connect ECONNREFUSED 127.0.0.1:9000
如何在App中使用工作人员的方法?谢谢

//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中的容器实例。并且containerDefinitions.portMapings.containerPort和hostPort都设置为9000。
编辑2
docker主机上的iptables -L -n显示了侦听9000的容器的ip,我在代码中用ip替换了localhost,现在可以了。但是,如果主机重启或容器重启,Said ip可能会发生变化...另一个问题的解决方案。

最佳答案

我在尝试在Docker容器之间进行通信时遇到了同样的问题。您将必须使用容器所在服务器的外部ip:port地址。

关于meteor - 同一主机上容器之间的 meteor DDP调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41173565/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com