有沒有人有這方面的經驗?我有一個扭曲的應用程序。客戶端連接到服務器。我添加了一項功能,以便如果客戶端連接到服務器,但已經有一個來自該IP地址的客戶端正在運行,則會斷開新客戶端的連接。扭曲不檢測客戶端斷開連接
有一段時間,我沒有手動關閉Python程序就關閉了一臺客戶端計算機(或VM,確切地說)。當我這樣做時,偶爾會發現,服務器並沒有檢測到任何斷開連接。當計算機恢復並嘗試重新連接時,服務器堅持已經有來自該IP的連接。我迄今爲止唯一找到的解決方案是重新啓動服務器。
難道這是奇怪的網絡事物沒有斷開連接?扭曲的bug?
我99%肯定這不是我的代碼處理斷開連接的錯誤。我的代碼被設置爲在連接丟失時調用connectionLost
,包括大多數關閉計算機的情況,並且它會記錄一個字符串,說明斷開連接的內容,或者在發生異常時引發異常。這些東西都沒有出現在日誌中。
扭曲的框架具有在所有概念級別上定義的事件和eventHandler - 傳輸/連接,協議等來處理斷開連接。因此檢查代碼會有所幫助。您可以發佈展示該行爲的簡化版代碼。 – pyfunc 2010-11-18 18:27:33
@pyfunc:我會仔細研究代碼。我暫時懷疑網絡問題,因爲我讓客戶端不斷嘗試重新連接,並且在某些情況下,它最終能夠連接(儘管在其他情況下不能)。 – Claudiu 2010-11-18 19:01:02