Gibt es eine Möglichkeit, WebSockets mit SockJS-Client und Spring 4-Server zu verwenden, aber nicht mit STOMP?WebSocket mit Sockjs & Spring 4 aber ohne Stomp
Basierend auf diesem Tutorial von Spring-Website, ich weiß, wie 4. Auf der Client-Seite eine WebSocket-basierte Anwendung mit Stomp und Spring einzurichten, haben wir:
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);
});
});
Und auf der Serverseite, wir folgendes haben in der Steuerung:
@MessageMapping("/hello")
@SendTo("/topic/greetings")
public Greeting greeting(HelloMessage message) throws Exception {
Thread.sleep(3000); // simulated delay
return new Greeting("Hello, " + message.getName() + "!");
}
Jetzt verstehe ich, dass @MessageMapping("/hello")
stellt sicher, dass, wenn eine Nachricht an ein "/hello"
Ziel gesendet wird, dann ist die greeting()
Methode aufgerufen wird. Und da die stompClient
"/topic/greetings"
abonniert ist, sendet die @SendTo("/topic/greetings")
die Nachricht zurück an die stompClient
.
Aber das Problem mit dem oben genannten ist, dass StompClient ein Stomp-Objekt ist. Und ich möchte einfach sock.send('test');
verwenden und es zum Ziel meines Servers liefern lassen. Und ich will @SendTo("myownclientdestinationmap")
tun, kann ich es erhalten durch
sock.onmessage = function(e) {
console.log('message', e.data);
};
also eine Möglichkeit, dies zu tun, mit Spring 4, SockJS und ohne Stomp? Oder unterstützt Spring 4 WebSocket nur Stomp?
Ich möchte WebSocket in meiner 'spring-mvc' Anwendung verwenden. Könnten Sie mir bitte sagen, warum Sie' STOMP' nicht verwenden möchten? Danke !!! –