我有以下js代码:
stompClient.subscribe('/topic/clients', function (calResult) {
updateClientsTable(JSON.parse(calResult.body));
});
$.get("/clients", null);
和以下服务器代码(最后一行调用它):
@GetMapping(value = {"/clients"})
@ResponseBody
public void loadClients() {
brokerMessagingTemplate.convertAndSend("/topic/clients", clientService.getClientList());
}
有时前端会错过 $.get("/clients", null);
据我了解,问题是:在前端获得结果的那一刻,订阅没有发生。
如果将 $.get("/clients", null);
放在代码下方 - 一切正常。
您能解释一下如何等待订阅建立吗?
最佳答案
我认为不将 REST 请求与此消息传递模式混合使用会更有意义。
您是否考虑过通过 SockJS 将“updateClients”命令发送到回复“/topic/clients” channel 的“/apps/updateClients” channel ?
关于javascript - 如何等待订阅建立?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44461570/