最近写一个使用了 RabbitMQ 的 spring boot 项目,采用 docker 部署,所以有一个 openjdk 容器和一个 rabbitmq 容器,docker-compose.yml 里面是这样定义的:
services:
core:
build:
context: .
dockerfile: docker/core/Dockerfile
ports:
- 8080:8080
rabbitmq:
build:
context: .
dockerfile: docker/rabbitmq/Dockerfile
ports:
- 5672:5672
- 15672:15672
然后项目的 application.yml 里面,把 localhost 替换成 rabbitmq
spring:
rabbitmq:
host: rabbitmq
port: 5672
这样后端到 rabbitmq 的连接是正常的,但是前端用 websocket 连 rabbitmq 的 stomp (插件已开)却总是报错( 61613 端口也试了):
var ws = new WebSocket('ws://rabbitmq:15674/ws');
var client = Stomp.over(ws);
报错信息:
WebSocket connection to 'ws://rabbitmq:15674/ws' failed: Error in connection establishment: net::ERR_NAME_NOT_RESOLVED
想问下 websocket 这里应该怎么写地址才能实现两个容器间的通信?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.