Настройка rabbitmq с приложением spring4 stomp и socksjs

У меня проблема с приложением spring 4+Stomp+socks js. Он отлично работал с простым брокером сообщений, но при переключении на rabbitmq он не работал и не мог решить его с помощью ответа, указанного в Настройка внешнего брокера (RabbitMQ) в приложении Spring4+STOMP+SockJS

Мой код:

<websocket:message-broker application-destination-prefix="/app">
    <websocket:stomp-endpoint path="/hello">
        <websocket:sockjs/>
    </websocket:stomp-endpoint>
    <websocket:stomp-broker-relay prefix="/topic" system-login="guest" system-passcode="guest" client-login="guest"
                                  client-passcode="guest" relay-host="localhost" relay-port="15672"/>
</websocket:message-broker>

Контроллер:

    @Controller
public class StompController {

    @MessageMapping("/hello")
    @SendTo("/topic/greetings")
    public Greeting greetUser(User user) throws Exception {
        Thread.sleep(3000); // simulated delay
        return new Greeting("Hello, " + user.getName() + "!");
    }



}

Js:

function connect() {
            var socket = new SockJS('/hello');
            stompClient = Stomp.over(socket);
            stompClient.connect('guest','guest', function(frame) {
                setConnected(true);
                console.log('Connected: ' + frame);
                stompClient.subscribe('/topic/greetings', function(greeting){
                    showGreeting(JSON.parse(greeting.body).content);
                });
            });
        }

При подключении пишет:

СЕРЬЕЗНЫЙ [clientInboundChannel-1] org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler.handleMessageInternal Брокер сообщений не активен. Игнорирование: [Payload byte[0]][Headers={stompCommand=CONNECT, stompCredentials =[ЗАЩИЩЕНО], nativeHeaders={heart-beat=[10000,10000], пароль=[ЗАЩИЩЕНО], логин=[гость], accept-version=[1.1,1.0]}, simpMessageType=CONNECT, simpSessionAttributes={}, simpSessionId=ih_04mxa, id=d36fc1c1-e00c-fb48-51af-c526e3018e20, отметка времени=1413617272621}]

Я даже включил плагин stomp в rabbit mq.


person user1188867    schedule 19.10.2014    source источник


Ответы (1)


порт STOMP

Я думаю, что Spring не может подключиться к вашему экземпляру RabbitMQ, потому что вы указываете ему порт 15672, который, я думаю, должен быть портом по умолчанию для веб-интерфейса или чего-то еще. Порт по умолчанию для STOMP-коннектора с rabbitMQ — 61613 (и это действительно значение по умолчанию, выбранное Spring). Не могли бы вы попробовать с этим?

Контроль доступа

Кроме того, вам обязательно следует подумать о настройке контроля доступа, поскольку гостевой пользователь не будет работать удаленно.

person Brian Clozel    schedule 20.10.2014