2015-01-19 2 views
3

나는 spring + stomp를 사용하여 websocket 클라이언트에게 메시지를 브로드 캐스트하지만 결과가 성공적이라는 것을 어떻게 알 수 있습니까? setSendTimeout 메서드를 사용하고 convertAndSend가 성공했는지 여부를 감지하기 위해 Exception을 catch하지만 작동하지 않습니다! 자바 코드spring + stomp + sockjs와 함께 websocket 응답을 얻는 방법

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

답변

0

WebSocket을은 HTTP를 통해 TCP의 추상 구현입니다. TCP는 신뢰할 수 있으며 수신자에게 패킷을 전달할 수 있습니다. 따라서 애플리케이션 컨트롤러에서 프런트 엔드 Javascript로 전달하는 것에 대해 걱정할 필요가 없습니다.

+0

답변 해 주셔서 감사합니다. 연결이 끊어진 후이를 감지하지 못하면 convertAndSend 메서드를 호출하고 클라이언트가 내 메시지를 받았는지 여부를 알 수 없습니다! –

관련 문제