我正在通过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中捕获此错误。我相信我错过了一些简单的东西,但是一点帮助就会很棒。
答案 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();
};