Stomp Socket не работает в кластере Tomcat, имеющем 2 экземпляра.Я передаю сообщения, используя simpMessagingTemplate.Это не чат приложение - PullRequest
0 голосов
/ 20 сентября 2018

Веб-сокет Stomp хорошо работает в одном экземпляре tomcat.Но когда два экземпляра работают, это не работает.Я использую приложение весенней загрузки и VueJS frontEnd.

import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.config.annotation.AbstractWebSocketMessageBrokerConfigurer;
import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
import org.springframework.web.socket.config.annotation.StompEndpointRegistry;

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {

    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        registry.addEndpoint("/connect-to-websocket")
                .setAllowedOrigins("*")
                .withSockJS();
    }

}

, и после некоторого действия я использую шаблон, подобный этому.

this.template.convertAndSend("/Auction/currentPrice",auctionDetailsSocketEntity);

, поэтому, кто когда-либо подпишется на / Auction / currentPrice, будетполучение этих данных.

Я ТОЛЬКО ВЕЩАНИЕ, КОТОРОЕ ПОДПИСЫВАЕТСЯ НА ЭТО.

Это работает нормально с одним экземпляром.Но два случая, это не работает.Как это исправить.Заранее спасибо

1 Ответ

0 голосов
/ 20 сентября 2018

@ RajaSekhar Chodavarapu, попробуйте это ...

 @Configuration
    @EnableWebSocketMessageBroker
    public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {

        @Override
        public void configureMessageBroker(final MessageBrokerRegistry config) {
            config.enableSimpleBroker("/topic");
            config.setApplicationDestinationPrefixes("/app");
        }
        @Override
        public void registerStompEndpoints(final StompEndpointRegistry registry) {
            registry.addEndpoint("/connect-to-ebsocket").setAllowedOrigins("*").withSockJS();
        }
    }
...