Spring Web Socket+Docker rabbitMQ连接错误



我正在尝试配置Spring引导WebSocket并分离Stomp Broke。

以下是插座的配置:

@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.setApplicationDestinationPrefixes("/app")
.enableStompBrokerRelay("/topic", "/queue")
.setRelayHost("localhost")
.setClientLogin("guest")
.setClientPasscode("guest");
} 

docker-compose.yml我用来制作rabbitMq代理:

version: '2'
services:
rabbitmq-stomp:
image: "jorgeacetozi/rabbitmq-stomp:3.6"
ports:
- "5672:5672"
- "15672:15672"
- "61613:61613"
environment:
- RABBITMQ_DEFAULT_USER=test
- RABBITMQ_DEFAULT_PASS=password  

当我运行应用程序时,它会出现以下错误:

2018-07-23 11:13:59.734 ERROR 2958 --- [ent-scheduler-4] o.s.m.s.s.StompBrokerRelayMessageHandler : Received ERROR {message=[Bad CONNECT], content-type=[text/plain], version=[1.0,1.1,1.2], content-length=[32]} session=_system_ text/plain payload=Access refused for user 'guest'

rabitMq终端日志显示:

rabbitmq-stomp_1  | =ERROR REPORT==== 23-Jul-2018::05:38:00 ===
rabbitmq-stomp_1  | STOMP error frame sent:
rabbitmq-stomp_1  | Message: "Bad CONNECT"
rabbitmq-stomp_1  | Detail: "Access refused for user 'guest'n"
rabbitmq-stomp_1  | Server private detail: none

我该如何解决这个问题?

您可能需要使用set_permissions命令显式设置权限

set_permissions[-p vhostpath]{user}{conf}{write}{read}

在docker_compose中使用命令标签:

version: '2'
services:
rabbitmq-stomp:
image: "jorgeacetozi/rabbitmq-stomp:3.6"
ports:
- "5672:5672"
- "15672:15672"
- "61613:61613"
environment:
- RABBITMQ_DEFAULT_USER=test
- RABBITMQ_DEFAULT_PASS=password 
command: rabbitmqctl set_permissions -p /myvhost guest ".*" ".*" ".*"

最新更新