我已經構建了一個簡單的Web應用程序,它使用socket.io通過node.js服務器進行一些通信。是否socket.io重新連接重新運行連接?
當用戶連接時,節點傳回的信息告訴客戶訂閱某些事件。這工作正常。
但是,如果您讓瀏覽器設置爲空閒狀態,那麼客戶端最終會訂閱兩次事件。訂閱過程是這樣的:
當用戶連接的node.js得到一個「的adduser」消息
,在該函數hapen兩個關鍵的事情是這樣的:
socket.on('adduser', function(data)
<snip>
socket.emit('nodeinfo', {node_id: NODE_ID});
socket.emit('update', {msg: 'you are connected'});
插座。發出('nodeinfo')通知客戶訂閱事件。
所以客戶有
socket.on('nodeinfo', function(data) { ... }
的事情是它永遠不會說「你」連接兩次,沒有執行console.log()函數「的adduser」的再次調用上的節點側。似乎發生的唯一情況是node.js再次發出nodeinfo(或者客戶端認爲)導致客戶端重新訂閱。
任何人都可以向我解釋如何重新連接在socket.io工作,以及如何發生?
是的。與結果相同,我只是注意到我們的應用程序會發生什麼情況。謝謝 – Xin 2017-04-06 03:26:12