2011-08-25 183 views
5

我有一個socket.io客戶端連接到一個node.js服務器。如果我在命令行中kill node.js,客戶端立即凍結(即通信停止),但在「disconnect」事件觸發之前會有大約20秒的延遲。這是行爲設計​​嗎?是否有配置選項來減少觸發斷開連接事件的延遲?Socket.io延遲觸發「斷開」事件?

看起來,這種行爲在socket.io的相對最近(最近6個月)更新中發生了變化。在socket.io本身內置了重新連接功能之前,我使用「disconnect」事件處理程序實現了自己的重新連接邏輯,當時服務器通信暫停時幾乎立即觸發「disconnect」事件。

回答

6

是的。 close timeout

+1

這甚至不是問題的答案,你怎麼能接受它?或者至少給出一個解釋,如何接近超時修復這個問題! – Iamisti

2

我認爲這可能是一種設計模式。客戶端可能會假設服務器暫時無法訪問(網絡流量等),並且基本上會一直嘗試到達它,直到客戶端超時啓動。

我發送斷開連接(socket.disconnect())直接從客戶端到服務器,我不明白這個問題。