我們的一個分佈式應用程序正在使用心跳檢測對方的斷開連接(例如LAN線路斷開等)。 是心跳需要嗎?使用tcp時,我必須保持心跳嗎?
0
A
回答
1
也許,如果你沒有得到心跳,你會做什麼?
如果你沒有辦法恢復有 沒有心跳的一點。
如果您使用從服務器回撥到客戶端的回撥,您需要一種客戶端可以要求服務器憎恨所有丟失回叫的方式,這並不容易。
此外,如果您沒有心跳,它並不意味着消息將不會在那裏得到,因爲可能會有各種網絡延遲,只是不滿意您的消息是安全的嗎?
的心臟搏動是易位,該 硬位是做什麼時,心臟 不打!
1
是的。 TCP只會顯示物理連接仍然存在(即,套接字未被路由器或操作系統所吞噬)。但會告訴什麼也沒有關於應用程序可用性。如果管道另一端的進程處於while(1);
循環中,並且未處理您的請求,則說明您沒有真正連接到它。
0
這是一個非常好的方式,可以知道您仍然在「應用程序級」連接到另一端,應用程序仍然可以通話。否則,你將不得不假設「另一端」沒有什麼可以「說」的,這很難與「35秒前實際丟失的網絡連接的另一端」分開。
相關問題
- 1. 我必須使用BreezeController嗎?
- 2. 我必須使數據保密嗎?
- 3. 我必須保存()我的NSManagedObjectContext嗎?
- 4. 我必須支持越獄iPhone嗎?
- 5. 計時器必須保持刪除
- 6. .net核心使用https/ssl。我必須重定向嗎?
- 7. 每次我回發保留它時,我必須重寫Cookie嗎?
- 8. 我必須使用Flash Media Encoder嗎?
- 9. 我必須使用django註冊嗎?
- 10. 我必須使用wsgi_module的「def application」嗎?
- 11. 我必須使用ContinueWith和HttpClient嗎?
- 12. 我必須使用按鈕嗎?
- 13. 我必須使用連接表嗎? [MYSQL]
- 14. Googe Maps:我必須使用Ionic Native嗎?
- 15. 我必須在Node.js中使用Babel嗎?
- 16. 我必須使用Form標籤嗎?
- 17. 使用Backbone.js時,我必須使用後端嗎?
- 18. 當onStop()觸發時,我必須堅持活動數據嗎?
- 19. 當持久化到磁盤時,我必須加密SecureString嗎?
- 20. 當我必須使用__block時,ARC會告訴我嗎?
- 21. 使用SqlInstanceStore時,我必須顯式配置持久性和卸載設置嗎?
- 22. 使用PDO時,我必須禁用魔術引號嗎?
- 23. 我必須做StringIO.close()嗎?
- 24. 我必須這樣做嗎?
- 25. 我必須導入com.companyname.productname.R嗎?
- 26. 我必須致電sendResponse嗎?
- 27. 我必須關閉FileInputStream嗎?
- 28. 我必須發佈accessoryView嗎?
- 29. 我必須打開ngx_http_access_module嗎?
- 30. 我必須重置webclient嗎?
當沒有收到心跳時,當前的實現是緊密連接。 – Benny 2010-01-13 08:11:24