有沒有辦法檢查Node.js服務器是否從html/javascript在線?連接時顯示消息,但如果服務器關閉,則不會發生任何事情。有沒有辦法做到這一點?檢查node.js服務器是否在線?
感謝, 米卡
是的,謝謝你的答案,我用插座對象的「錯誤」事件檢測服務器停機或停電所以我假設的是,如果報告的錯誤,服務器下來或客戶端有互聯網連接問題。
有沒有辦法檢查Node.js服務器是否從html/javascript在線?連接時顯示消息,但如果服務器關閉,則不會發生任何事情。有沒有辦法做到這一點?檢查node.js服務器是否在線?
感謝, 米卡
是的,謝謝你的答案,我用插座對象的「錯誤」事件檢測服務器停機或停電所以我假設的是,如果報告的錯誤,服務器下來或客戶端有互聯網連接問題。
如果您使用jQuery,您可以發送簡單的AJAX請求並使用error
回調。當您的服務器返回4xx或5xx狀態碼時,將調用error
回調。如果一切正常,success
回調被稱爲
譚的回答是正確的,但狀態碼錯誤並不總是說服務器是「關閉」。一個404狀態代碼只是簡單地指出缺少一個文檔 - 這是來自服務器的實際響應。
在我的情況下,我使用的是socket.io。
當使用socket.io你當這個文件被加載,它宣稱IO
全局變量如果服務器在你第一次請求是關閉resquest的socketio.js文件到服務器,然後您從標籤文件,您將需要重寫這一標籤
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。
是的,但如果node.js和webserver託管客戶端文件是兩個不同的? – blackuprise 2013-05-14 10:45:16
發送請求到服務器,看看會發生什麼? – SLaks 2013-05-12 15:07:18
我想我需要使用超時事件,我會試試看看會發生什麼。 – blackuprise 2013-05-12 15:11:27
我在錯誤事件上做了它,不知道是否有更好的解決方案。 – blackuprise 2013-05-12 17:31:31