[英]Socket.io - server down handling
我正在嘗試編寫一個簡單的應用程序,該服務器在服務器端使用socket.io和node.js來提供數據。 我想通知用戶服務器是否關閉(例如,服務器向客戶端提供網頁並且在任何刷新服務器停止之前)。 目前,它導致瀏覽器給出以下錯誤:
GET http://localhost:8080/socket.io/?EIO=2&transport=polling&t=1409325689935-6 net::ERR_CONNECTION_REFUSED
我無法使用socket.on('error'(...))事件捕獲該事件,只要客戶端無法連接到服務器,我想顯示一些消息。 任何想法,將不勝感激:)代碼初始化套接字提供如下:
socket = io.connect(document.domain, {
'sync disconnect on unload' : false
});
您不能僅通過執行類似的操作來檢查服務器是否為您提供.js文件嗎?
<script type="text/javascript" onload="loaded()" src="get_socket.js"></script>
function loaded(){
//this will only execute if the server is up
}
我已經成功地將以下代碼不僅用於socket.io
而且還用於希望加載,執行或同時加載和執行這兩個.js
代碼。 請原諒我,因為我早已忘記了我最初從何處獲得此信息,很可能是這個網站。
請注意,我僅調整了loadAndExecute
函數來處理無法通過回調加載文件的情況。
var load,execute,loadAndExecute;
load=function(a,b,c){var d;d=document.createElement("script"),d.setAttribute("src",a),b!=null&&d.addEventListener("load",b),c!=null&&d.addEventListener("error",c),document.body.appendChild(d);return d},
execute=function(a){var b,c;typeof a=="function"?b="("+a+")();":b=a,c=document.createElement("script"),c.textContent=b,document.body.appendChild(c);return c},
loadAndExecute=function(a,b,c){return load(a,function(){return execute(b)},function(){return c();})};
這樣使用:
loadAndExecute("domain.com:80/socket.io/socket.io.js", function() {
//it loaded, put main code here
},
function(){
//failed to load, put error display code here
});
希望這可以幫助像我這樣幫助過我很多次的人。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.