Сбой весенней загрузки при подключении к RabbitMQ Web STOMP - PullRequest
0 голосов
/ 25 ноября 2018

Я пытаюсь использовать RabbitMQ Web STOMP Plugin с загрузкой Spring.Я запустил сервер RabbitMQ с портом 15674, доступным для протокола http / web-stomp.Когда я запускаю загрузочный проект Spring, я получаю следующую ошибку

osmssStompBrokerRelayMessageHandler: сбой соединения TCP в сеансе system : сбой транспорта: java.lang.IllegalArgumentException: нет константы перечисления org.springframework.messaging.simp.stomp.StompCommand.HTTP / 1.1 400 Плохой запрос

io.netty.handler.codec.DecoderException: java.lang.IllegalArgumentException: нет константы перечисления org.springframework.messaging.simp.stomp.StompCommand.HTTP / 1.1 400 Неправильный запрос

Ниже приведены мои зависимости pom.xml

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-websocket</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>io.projectreactor</groupId>
        <artifactId>reactor-core</artifactId>
        <version>3.2.2.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>io.projectreactor.netty</groupId>
        <artifactId>reactor-netty</artifactId>
        <version>0.8.2.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-all</artifactId>
        <version>4.0.33.Final</version>
    </dependency>
</dependencies>

Я использую приведенный ниже класс в качестве конфигурации веб-сокета

import org.springframework.context.annotation.Configuration;
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
import org.springframework.web.socket.config.annotation.StompEndpointRegistry;
import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer;

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfiguration implements 
WebSocketMessageBrokerConfigurer {

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

   @Override
   public void registerStompEndpoints(StompEndpointRegistry registry) {
       registry.addEndpoint("/websocket").withSockJS();

   }
}

Ниже приведен снимок из моего плагина RabbitMQ Web, который показывает открытые порты

enter image description here

Может кто-нибудь помочь с этим?

1 Ответ

0 голосов
/ 30 ноября 2018

Ваш порт для relay неправильный.Посмотрите на ваш плагин конфигурации на этом скриншоте.Порт STOMP 61613.И это точно по умолчанию в StompBrokerRelayRegistration:

public class StompBrokerRelayRegistration extends AbstractBrokerRegistration {

    private String relayHost = "127.0.0.1";

    private int relayPort = 61613;

    private String clientLogin = "guest";

    private String clientPasscode = "guest";

    private String systemLogin = "guest";

    private String systemPasscode = "guest";

Не уверен, почему вы решили использовать этот плагин http/web-stomp для вашего приложения: https://www.rabbitmq.com/web-stomp.html

Мы говоримздесь про именно STOMP Broker.Наше приложение Spring будет прокси WebSocket поверх этого.Плагин Web STOMP RabbitMQ предназначен для целевых клиентов WebSocket.Это не для серверной стороны для ретрансляции через STOMP Broker.

...