【发布时间】:2017-11-11 16:40:15
【问题描述】:
我有以下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); 放在代码下方 - 一切正常。
您能解释一下如何等待已建立的订阅吗?
【问题讨论】:
-
我假设您已经通过 .connect() 建立了一个有效的 stomp 连接,但是在您查询主机一次之前,以后的订阅无法获取消息? STOMP 不为“成功”订阅提供回调。
-
它不会不断复制。我不明白这句话:直到你查询主机一次
标签: javascript spring-mvc websocket stomp sockjs