Spring webSocket ile istemci ve sunucu arasında bağlantı kurmaya çalışıyorum ve bunu this link yardımıyla yapıyorum. Denetleyicinin istemciye her 5 saniyede bir "merhaba" göndermesini ve istemciyi her seferinde tebrik kutusuna eklemesini istiyorum. Bu kontrolör sınıftır:Spring Web-Socket ile istemciye düzenli olarak mesaj gönderme
@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");
}
}
ve bu app.jsp içinde Bağlan() fonksiyonudur: index.jsp yükler ve ben, sadece bir kez o bağlantı düğmesine bastığınızda
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);
});
});
}
selamlamada merhaba, müşteriyi her 5 saniyede bir "merhaba" mesajını göstermesi için nasıl yapmalıyım?
"Zamanlanmış" mesajı görüntüleniyor mu? Zamanlanmış açıklama çalışması çalışıyor mu demek istediniz? – cralfaro
Evet, çalışıyor @cralfaro – user5621266
Sanırım sorun şu ki, ne yapmaya çalışıyorsun, anlam ifade etmiyorsun, ben bir mesaj gönderen olarak düşünmem gerek. Tüm dinleyicilere bir yayın, ancak Program ekleyerek aslında kimse gerçek bir mesaj gönderiyor. Zamanlanmış açıklamayı kaldırmanızı ve bazı setTimeout() JS işlevleriyle kukla html'den aynı şeyi gerçekleştirmenizi ve konuya bağlanmanızı ve biraz ileti göndermenizi öneririm, sonra iletiyi diğer html sayfanızda görürsünüz. – cralfaro