如何判断Stomp服务器何时与Stomp.JS客户端断开连接

时间:2014-07-01 15:18:21

标签: stomp sockjs

我正在通过Sock.JS客户端发送一条stomp消息。当我断开服务器时,我想在客户端上显示一条警告消息。为此,我实现了服务器端心跳......

stompClient = Stomp.over(socket);
stompClient.heartbeat.outgoing = 20000;
stompClient.heartbeat.incoming = 20000;
stompClient.connect({}, function(frame) {
  ...
}

在Chrome开发者控制台中,我看到了消息......

POST http://localhost:8080/hello/800/8n_btbxb/xhr_streaming net::ERR_CONNECTION_RESET sockjs-0.3.min.js:27
Whoops! Lost connection to undefined 

但我不确定如何在JS中捕获此错误。我相信我错过了一些简单的东西,但是一点帮助就会很棒。

2 个答案:

答案 0 :(得分:13)

正如muttonUp指出的那样,来自https://github.com/jmesnil/stomp-websocket/的stomp.js将覆盖onclose处理程序。另一方面,它提供了在connect:

上传递错误回调的选项
stompClient.connect({}, function(frame) {
    ...
}, function(message) {
    // check message for disconnect
});

由于你会收到几种错误传递回你的回调,你必须检查它确实是'#34;哎呀! [...]"表示连接丢失。

答案 1 :(得分:2)

哎呀只是弄明白我会删除一点,如果它没有帮助别人。我需要使用SockJS客户端而不是Stomp一个...

var socket = new SockJS('/hello');
...
socket.onclose = function() {
    console.log('close');
    stompClient.disconnect();
    setConnected();
};