J'essaie d'établir une connexion entre le client et le serveur via Spring webSocket et je le fais à l'aide de ce lien . Je veux que le contrôleur envoie un "hello" au client toutes les 5 secondes et que le client l'ajoute à la boîte de vœux à chaque fois. Voici la classe du contrôleur :
@EnableScheduling
@Controller
public class GreetingController {
@Scheduled(fixedRate = 5000)
@MessageMapping("/hello")
@SendTo("/topic/greetings")
public Greeting greeting() throws Exception {
Thread.sleep(1000); // simulated delay
System.out.println("scheduled");
return new Greeting("Hello");
}
}
et voici la fonction Connect() dans app.jsp :
function connect() {
var socket = new SockJS('/gs-guide-websocket');
stompClient = Stomp.over(socket);
stompClient.connect({}, function (frame) {
setConnected(true);
console.log('Connected: ' + frame);
stompClient.send("/app/hello", {}, JSON.stringify({'name': "connect"}));
stompClient.subscribe('/topic/greetings', function (message) {
console.log("message"+message);
console.log("message"+(JSON.parse(message.body)));
showGreeting(JSON.parse(message.body).content);
});
});
}
Lorsque l'index.jsp se charge et que j'appuie sur le bouton de connexion, il n'affiche qu'une seule fois le message "hello". Comment puis-je faire en sorte que le client affiche le message "hello" toutes les 5 secondes ?