2013-01-10 51 views

回答

2

我在2001年的書中將其命名爲Remote Session模式。

想法是在註冊表中綁定一個單例RMI對象,但只有一個login()方法。該方法如果成功,將爲每個調用返回一個新的RemoteSession對象,該對象包含會話所需的API。 RemoteSession當然是另一個遠程接口。它還包含一個logout()方法,該方法不導出對象,並且還實現Unreferenced作爲終止會話的另一種方式。

RemoteSession的每個實例都可以維護客戶端狀態,所以它是一個會話對象,並且作爲獲取RemoteSession對象的唯一方法是通過login(),它對第一個近似值是安全的。

+0

這本書叫什麼名字? –

+0

好吧,現在我們有實現引用的遠程服務器對象,什麼時候該對象GC'd?我希望此用戶註銷時將此對象發送到GC,以便與該用戶的會話將被終止,如果我們在同一會話中有更多的一個用戶(兩個用戶正在相互聊天),那麼情況會是怎樣我們跟蹤會議? –

+0

1. java.rmi:Java中遠程方法調用指南。 2.當它被分配的客戶端釋放存根,退出JVM等時,GCd是GCd。按照您最初描述的方式,您不能像我描述的那樣在同一個會話中擁有多個用戶你現在正在改變的問題,但它的概括如下:logout()方法需要跟蹤它的客戶端數量爲零,然後取消自我註銷。 unreferenced()方法的作用相同。 – EJP

相關問題