Как и в новейшем учебнике Spring 4 с STOMP и SockJS, мы находим RequestMapping следующего вида:
Homecontroller.java
@MessageMapping("/hello")
@SendTo("/topic/greetings")
public Greeting greeting(HelloMessage message) throws Exception {
Thread.sleep(3000); // simulated delay
return new Greeting("Hello, " + message.getName() + "!");
}
теперь я попытался реализовать многоканальную поддержку, изменив это сопоставление запросов:
@MessageMapping("/hello/{id}")
@SendTo("/topic/greetings/{id}")
public Greeting greetingMultichannel(HelloMessage message) throws Exception {
this.info();
Thread.sleep(300); // simulated delay
return new Greeting(" Hello, " + message.getName() + "!");
}
MessageMapping не работает, sendTo не доставляет обратно на указанный URL. Хотя я подписался на правильный канал, и сообщение выходит без проблем, как видно на этом
журнал отладки:
Открытие веб-сокета ... Stomp.js: 130 Открыто веб-сокет ... Stomp.js: 130
CONNECT accept-версия: 1.1,1.0 сердцебиение: 10000,10000
Stomp.js: 130 ‹-------------------------------- ПОДКЛЮЧЕННОЕ сердцебиение: 0,0 версия: 1.1
Stomp.js: 130 подключено к серверу undefined Stomp.js: 130 Подключено: ПОДКЛЮЧЕНО версия: 1.1 сердцебиение: 0,0
(индекс): 23
ПОДПИСАТЬСЯ id: sub-0 цель: / topic / greetings / 1
Stomp.js: 130
ОТПРАВИТЬ пункт назначения: / app / hello / 1 content-length: 18
{"имя": "текст"}
должен быть ответ, но ничего не возвращается ..
Может ли кто-нибудь увидеть, что мне здесь не хватает?
ура, Генрих