How to tell when a Stomp server disconnected from the Stomp.JS client

Jackie picture Jackie · Jul 1, 2014 · Viewed 22.2k times · Source

I am sending a stomp message over a Sock.JS client. When I disconnect the server I would like a warning message to show up on the client. To do this I have implemented a server side heartbeat

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

In the Chrome developer console I see the message

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 

How can I capture this error message?

Answer

Christoph picture Christoph · Jun 26, 2015

As pointed out by muttonUp stomp.js from https://github.com/jmesnil/stomp-websocket/ will overwrite the onclose handler. On the other hand it provides the option to pass an error-callback on connect:

stompClient.connect({}, function(frame) {
    ...
}, function(message) {
    // check message for disconnect
});

Since you will get several kinds of errors delivered to your callback, you have to check the message it it was indeed the "Whoops! [...]" which indicates a connection loss.