Is it possible to use stomp on top of sockjs without MVC. Therefore, I would like to have a spring rest interface in tomcat and an angular2 application running express.
WebSocketConfig.java
@Configuration @EnableWebSocketMessageBroker public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer { @Override public void registerStompEndpoints(StompEndpointRegistry registry) {
Socketcontroller.java
@Controller public class SocketController { @Autowired private SimpMessagingTemplate template; public SocketController() { int a = 5; } @MessageMapping("/greeting") public String handle(String greeting) { return "[" + "greeting" + ": " + greeting; } }
and typescript code:
. ,,
constructor() { var socket = new SockJS('http://localhost:8080/portfolio'); this.stompClient = Stomp.over(socket); this.stompClient.connect("guest", "guest", function(frame) { console.log('Connected: ' + frame); this.stompClient.subscribe('http://localhost:8080/topic/greeting', function(greeting) { console.log("from from", greeting); }); }, function (err) { console.log('err', err); }); }
. ,.
send() { this.stompClient.send("http://localhost:8080/app/greeting", {}, JSON.stringify({ 'name': "kitica" })); }
. ,.
but for some reason this does not work. In the console, I get the output:
Opening Web Socket... stomp.js:134 Web Socket Opened... stomp.js:134 >>> CONNECT login:guest passcode:guest accept-version:1.1,1.0 heart-beat:10000,10000 stomp.js:134 <<< CONNECTED version:1.1 heart-beat:0,0 stomp.js:134 connected to server undefined activity-socket.ts:17 Connected: CONNECTED heart-beat:0,0 version:1.1
and when I send, I get
>>> SEND destination:http://localhost:8080/app/greeting content-length:17
{"name": "kitica"}
but the message does not return to the subscriber.
angular2 is on port 8001 and spring the rest is on 8080