簡體   English   中英

Socket.io-服務器停機處理

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM