我想定期嘗試打開websocket連接,直到成功。所以我每5秒嘗試一次,它似乎最初工作了大約一分鐘左右。即禁用服務器,嘗試連接,然後立即關閉readyState設置爲3,然後5秒鐘後,另一次嘗試,另一個相同的響應。但是在一分鐘或2分鐘後,它不再關閉連接,它只是掛起在連接狀態(readyState == 0)。websocket連接不關閉
function wsConnect()
{
console.log("trying to connect...");
var socket = new WebSocket("wss://blahblah.com");
socket.onopen=function(){console.log("open");};
socket.onerror=function(){console.log("error");};
socket.onclose=function(msg){console.log("close");};
setTimeout(function(){console.log("RS:"+socket.readyState);socket.close();wsConnect();},5000);
}
有趣的是,如果我以後,啓動服務器時,它會通過幾十個連接想必所有的連接作出導致的readyState 0排隊等候的打擊。有什麼辦法可以完全粉碎殺滅一個readystate 0連接?無法關閉它,因爲它沒有打開。
或者,我該如何定期進行連接嘗試,以便在服務器可用時連接,但在所有需要的情況下都不會用大量連接轟炸服務器?
瀏覽器:鉻
一旦它開始與readyState的應答0,甚至刷新頁面不會修復它。只有進入一個全新的領域,然後回去看似重置。
歡迎使用堆棧溢出!你使用的是什麼瀏覽器? – starbeamrainbowlabs 2012-08-12 09:12:09
對不起,應該說,瀏覽器是鉻。 Firefox也表現出類似的行爲。我無法相信這給了我多少麻煩,因爲這不是一件非常不尋常的事情。我只想讓瀏覽器繼續嘗試,直到服務器再次可用。我是唯一有這個問題的人嗎? – poby 2012-08-12 10:04:01
也許在http://crbug.com打開一個錯誤報告將幫助 – starbeamrainbowlabs 2012-08-14 17:11:29