У меня проблема с приложением 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.