如何等待订阅建立?

gst*_*low 10 javascript stomp spring-mvc websocket sockjs

我有以下js代码:

stompClient.subscribe('/topic/clients', function (calResult) {
    updateClientsTable(JSON.parse(calResult.body));
});
$.get("/clients", null);
Run Code Online (Sandbox Code Playgroud)

并遵循服务器代码(最后一行调用它):

 @GetMapping(value = {"/clients"})
 @ResponseBody
 public void loadClients() {
      brokerMessagingTemplate.convertAndSend("/topic/clients", clientService.getClientList());
 }
Run Code Online (Sandbox Code Playgroud)

有时前端未命中的结果 $.get("/clients", null);

据我了解问题:在结果进入前端的那一刻,订阅不会发生.

如果把$.get("/clients", null);以下代码放在代码中 - 一切正常.

你能解释一下如何等待订阅吗?

lig*_*303 1

我认为不将 REST 请求与这种消息传递模式混合起来更有意义。

您是否考虑过通过 SockJS 将“updateClients”命令发送到“/apps/updateClients”通道,该通道回复“/topic/clients”通道?