WebSocket with Sockjs & Spring 4,但没有Stomp
有没有办法将WebSockets与SockJS客户端和Spring 4服务器一起使用,但不使用STOMP?
基于Spring网站上的本教程,我知道如何使用Stomp和Spring 4设置基于WebSocket的应用程序。在客户端,我们有:
var socket = new SockJS('/hello');
stompClient = Stomp.over(socket);
stompClient.connect({}, function(frame) {
setConnected(true);
console.log('Connected: ' + frame);
stompClient.subscribe('/topic/greetings', function(greeting){
showGreeting(JSON.parse(greeting.body).content);
});
});
在服务器端,我们在控制器中有以下内容:
@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")
"/hello"
greeting()
stompClient
"/topic/greetings"
@SendTo("/topic/greetings")
stompClient
但上述内容的问题在于,stompClient 是一个 Stomp 对象。我想简单地使用它并将其发送到我的服务器的目标。我想做,我可以通过以下方式接收它sock.send('test');
@SendTo("myownclientdestinationmap")
sock.onmessage = function(e) {
console.log('message', e.data);
};
那么,有什么方法可以用Spring 4,SockJS和没有Stomp来做到这一点呢?还是Spring 4 WebSocket只支持Stomp?