На сервере SpringBoot, вот я делаю:
@RestController
public class ApiController {
...
@MessageMapping("/cmd")
@SendTo("/resp")
public CmdRespMessage conCommand(CmdReqMessage cmdReqMessage, SimpMessageHeaderAccessor headerAccessor) {
что-то делаю...
return new CmdRespMessage(200, ip, id, state);
}
В браузере:
const stompClient = new StompJs.Client({
brokerURL: 'wss://host/wsapi/xxx-websocket'
});
stompClient.onConnect = (frame) => {
console.log('Connected: ' + frame);
...
stompClient.subscribe('/resp', (msg) => {
conResponse(JSON.parse(msg.body).code....);
});
....
};
Потом делаю в каком-то месте паблиш:
stompClient.publish({
destination: "/app/cmd",
body: JSON.stringify({'ip': ip, ....})
});
И я рассчитываю, что оно прилетит мне в коллбек, и оно прилетает, да, но! Оно разлетается по всем соединениям. То есть бродкастится просто по всем открытым вебсокетам. Я рассчитывал, что это будет работать в рамках коннекта.
Это я что-то не так сделал, или так и задумано? Как эти запросы-ответы по коннекциям разделить?
Перемещено CrX из development