1

有没有办法通过 html/javascript 检查 Node.js 服务器是否在线?连接后,我会显示消息,但如果服务器关闭,则什么也不会发生。有没有办法做到这一点?

谢谢,米卡


是的,感谢您的回答,我在套接字对象上使用了“错误”事件来检测服务器关闭或中断,所以我假设如果报告错误,服务器关闭或客户端有互联网连接问题。

4

3 回答 3

1

就我而言,我使用的是 socket.io。

使用 socket.io 时,您必须将 socketio.js 文件重新请求到服务器,并且在加载此文件时,它会声明全局变量 io

如果服务器在您第一次从标签请求文件时关闭,您将需要重写此标签

var reloadIO = function (){

    // if server is not, serveri.io.js will be not available so we need to redeclare de dom node
    $("script[src*='socket.io.js']","head").remove();

    var script=document.createElement('script');
    script.type='text/javascript';
    script.src=ioSrc+"?"+Math.floor(Math.random()*111);;
    $("head").append(script);
    // nullify
    script = null;

    return;
};

如果你想检查它是否加载:

var isIOLoaded = function(){
    return (typeof(io) != "undefined") ? true : false;
}

这样,您可以使用 setInterval 检查是否声明了 io,如果未声明,则调用 reloadIO。

于 2013-05-13T09:47:28.647 回答
0

Tan 的回答是正确的,但状态代码错误并不总是表明服务器“关闭”。404 状态代码只是说明缺少文档——这是来自您的服务器的实际响应。

于 2013-05-13T07:36:37.083 回答
-1

如果您使用的是 jQuery,您可以发送一个简单的 AJAX 请求并使用error回调。当error您的服务器返回 4xx 或 5xx 状态码时,将调用回调。如果一切正常,success则调用回调

于 2013-05-13T01:41:11.130 回答