我的工作是記錄與ccapturesocketio客戶默默地失去連接,並創建新的socket(傳輸關閉)
這取決於每個客戶端有一個連接到節點的後端,其接收一個threejs動畫'render-frame'套接字事件。
這工作了一段時間,但幾分鐘後,客戶端沒有錯誤地關閉連接,然後創建一個新的連接,從而失去了第一個初始套接字連接。我始終保持整個時間的窗口開放,並將焦點放在上面。
我的套接字調試日誌顯示以下內容。它總是適用於幾幀,但一定但並不一致的時間後,總是滴:
socket.io:socket emitting event ["render-frame",{"frame":168}] +0ms
render frame
{ frame: 168 }
socket.io:client client close with reason transport close +6ms
socket.io:socket closing socket - reason transport close +0ms
socket.io:client ignoring remove for fbD1a4Wx0jBzJ7hqAAAA +1ms
SOCKET DISCONNECTED!
我簡化我的節點後臺調試我的渲染幀監聽器,並且現在它只是看起來是這樣的:
io.on("connection", function (socket) {
socket.on("disconnect", function (socket) {
console.log("SOCKET DISCONNECTED!");
});
socket.on("render-frame", function (data) {
console.log(data);
});
});
這是發生在所有的瀏覽器,雖然我只是真的需要它在鉻工作。使用socket.io 1.3.7
任何關於'運輸關閉'錯誤的原因將不勝感激。
您運行客戶端的設備是什麼類型?任何可能的CPU或網絡連接節電問題? – jfriend00
有同樣的問題,並建議添加一個乒乓球似乎是矯枉過正。這個問題似乎也只是'突然'發生(怎麼會是這樣?),它發生在1.3.5之後......然後將express和socket.io升級到最新版本,並繼續發生 – Clay
Followup to my comment - 我正在使用'HackTimer'來解決我在Chrome中遇到的非活動標籤問題。我沒有將腳本放置在我的JavaScript文件的頂部,正如他們的文檔中所描述的那樣,毫不意外地導致了這種意外的行爲。 – Clay