пружинная рама rabbitmq pong при подключении - PullRequest
0 голосов
/ 17 октября 2018

Я использую Spring Boot и RabbitMQ как брокер сообщений для моего приложения STOMP WebSocket.Вот моя конфигурация брокера сообщений:

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {

    @Value("${rabbitmq.host}")
    private String host;

    @Value("${rabbitmq.port}")
    private Integer port;

    @Value("${rabbitmq.login}")
    private String login;

    @Value("${rabbitmq.passcode}")
    private String passcode;

    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        registry.addEndpoint("/stomp")
                .setAllowedOrigins("*");
    }

    @Override
    public void configureMessageBroker(MessageBrokerRegistry registry) {
        registry.enableStompBrokerRelay("/topic")
            .setRelayHost(this.host)
            .setRelayPort(this.port)
            .setSystemLogin(this.login)
            .setSystemPasscode(this.passcode)
            .setSystemHeartbeatSendInterval(0)
            .setSystemHeartbeatReceiveInterval(0)
        ;
    }
}

На стороне интерфейса я использую stomp.js со следующим кодом для подключения:

var socket = new WebSocket("ws://localhost:5000/stomp");
        stompClient = Stomp.over(socket);
        stompClient.heartbeat.outgoing = 0;
        stompClient.heartbeat.incoming = 0;
        stompClient.connect({}, function (data) {
            stompClient.subscribe('/topic', function (payload) {
            });
        }); 

И у меня есть следующий результат в моемконсоль браузера:

Opening Web Socket...
undefined
Web Socket Opened...

>>> CONNECT
accept-version:1.1,1.0
heart-beat:0,0

<<< PONG

<<< CONNECTED
server:RabbitMQ/3.6.6
heart-beat:0,0
version:1.1

connected to server RabbitMQ/3.6.6

>>> SUBSCRIBE
id:sub-0
destination:/topic

Может кто-нибудь объяснить, почему я получил с сервера "\ n" (кадр PONG) после кадра CONNECT?Потому что в конфигурации моего брокера я отключил биения:

.setSystemHeartbeatSendInterval(0)
.setSystemHeartbeatReceiveInterval(0)

и, конечно, я отключил биения в моем скрипте js для подключения заголовков:

stompClient.heartbeat.outgoing = 0;
stompClient.heartbeat.incoming = 0;

Большое спасибо залюбая помощь)

...