2013-10-09 41 views
2

目前,我正在構建一個基於Java RMI的聊天服務器 - 客戶端程序。爲了讓客戶端檢測到其連接的服務器已經死亡,我只能想到兩種可能的解決方案,但在我的情況下,它們都不起作用。
1.等到客戶端需要調用服務器的某些方法時,這種方式效果不好,因爲如果聊天客戶端不調用任何服務器方法,它就不知道服務器已經死機,因此聊天客戶端可以當時不再接收任何新的聊天消息。
2.每隔幾秒調用一次服務器的方法進行例行檢查。但是這引入了大量的開銷。
這種情況有沒有更好的方法?
非常感謝。在Java RMI中,客戶如何知道其服務器已死?

+2

使用2,不要經常這樣做。平安!傍! ...你如何知道沒有與之互動的東西是死的? – blank

回答

3

所以沒有人似乎在回答這個問題......你如何知道在沒有與之交互的情況下死了什麼?

在IRC中,服務器將定期ping客戶端以檢查它們是否仍然連接上...您將在客戶端窗口中看到Ping! Pong!,有時客戶端會嘗試發送消息以發現它沒有連接。

如果你擔心開銷..只是不經常這樣做

相關問題