Search code examples
javascriptshutdown

How to detect if the server shutdown?


How to detect if the server shut down during the client has visited a page with javascript?

A request with a forever keep-alive header could do it, but the problem is that fires even when the user navigates away from the page.


Solution

  • Perhaps this is a bit of a naive approach, but you could count the number of response headers when an ajax call fails. With jQuery, for instance, you could do this:

    $.ajax( {
        'url': urlToTheServer,
        'success': function()
        {
            // server is up
        },
        'error': function( $xhr )
        {
            if( $xhr.getAllResponseHeaders().length < 1 )
            {
                // fair probability server is down
            }
        }
    } );
    

    The way I tested this, on my development box, is wrap the above in a setTimeout() call (with say, a 10 sec. timeout). Load the page. Shutdown server. And then wait for the timeout to expire and do the ajax request.

    PS.: $xhr.getAllResponseHeaders() returns a newline delimited string of headers, not an array or object of headers. I overlooked this at first, however, this doesn't change the outcome of the script. If the string length of $xhr.getAllResponseHeaders() is less than 1, no response headers were present.