как получить ответ веб-сокета с помощью spring+stomp+sockjs

Я использую spring + stomp для передачи сообщения клиенту веб-сокета, но как я могу узнать, что результат успешен? Я использую метод setSendTimeout и перехватываю Exception, чтобы определить, успешно ли выполнен convertAndSend, но он не работает! Java-код

@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;

}

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>

person chao.yu    schedule 19.01.2015    source источник


Ответы (1)


WebSockets — это абстрактная реализация TCP через HTTP. TCP надежен и гарантирует доставку пакетов получателю. Таким образом, вам не нужно беспокоиться о доставке из вашего контроллера приложения во внешний интерфейс Javascript.

person shazin    schedule 19.01.2015
comment
Спасибо за ваш ответ! После разрыва соединения, а я этого не обнаружил, вызываю метод convertAndSend, но не знаю, получил ли клиент мое сообщение! - person chao.yu; 19.01.2015