如何使用 spring+stomp+sockjs 获得 websocket 响应

cha*_*.yu 5 java spring stomp sockjs

我使用 spring+stomp 向 websocket 客户端广播消息,但我怎么知道结果是成功的?我使用setSendTimeout方法并捕获异常来检测convertAndSend是否成功,但是没有用!代码

@Resource
private SimpMessagingTemplate simpMessagingTemplate;

@RequestMapping("/test")
public String test() {
    simpMessagingTemplate.setSendTimeout(1);
    String result;
    try {
        simpMessagingTemplate.convertAndSend("/topic/test", "haha");
        result = "success!";
    } catch (Exception e) {
        result = "failed! \n" + e.toString();
    }
    return result;

}
Run Code Online (Sandbox Code Playgroud)

js代码

<script src="/lib/websocket/sockjs.min.js"></script>
<script src="/lib/websocket/stomp.min.js"></script>
<script>
  var socket = new SockJS("/kefu");
  var client = Stomp.over(socket);
  client.debug = function (str) {
  };

  client.connect(
          {},
          function () {
            client.subscribe('/topic/test', function(msg) {
              console.log(msg);
            });
          },
          function (error) {
            console.log(error);
          }
  );

</script>
Run Code Online (Sandbox Code Playgroud)

sha*_*zin -2

WebSockets 是 TCP over HTTP 的抽象实现。TCP 是可靠的并保证将数据包传送到接收者。因此,您无需担心从应用程序控制器到前端 Javascript 的传递。