我目前有一個Ruby on Rails系統,並且有計劃將它移植到GWT。在我們這樣做之前,需要用GWT編寫部分站點的概念證明來證明GWT可以使用並顯示當前內容。數據的系統中的GWT部分的流動如下:如何管理混合Ruby/GWT系統中的會話?
- 客戶端發送一個RPC調用GWT服務器
- 服務器接收RPC調用,然後使一個等效Ajax請求滑軌系統
- Server生成從Ajax請求的結果的Java對象,並將其傳遞迴客戶端
我遇到現在的問題是這兩種系統管理用戶會話數據。我們只有1個Tomcat實例,並且有它自己的會話類型,然後我們的Ruby系統使用ActiveRecordStore將會話數據存儲在數據庫中。
這裏的問題是,當Tomcat系統與Ruby系統通話時,如果GWT客戶端發出登錄請求,則從GWT系統登錄的最後一個用戶具有在Rails系統中執行的所有傳出Ajax請求就好像它們是當前用戶一樣,因爲Tomcat系統看起來像Rails的單個客戶端。
無論如何,我怎樣才能讓它這樣,如果一個用戶開始與Tomcat系統的會話,Ruby系統將會意識到這一點並具有等同的會話,這樣即使Tomcat服務器是一個單一的客戶端,Rails系統意識到許多不同的用戶正在從單個客戶端與它通信。
相關問題:http://stackoverflow.com/questions/2270215/gwt-rpc-cookie-authentication和http://stackoverflow.com/questions/2053960/gwt-and-storing-a-session-key – 2010-02-24 19:25:05
「用戶開始與Tomcat系統會話」是什麼意思?他是否使用Tomcat的某種身份驗證方法或自定義解決方案進行登錄?無論哪種方式,會話密鑰很可能存儲在一個cookie(如JSESSIONID),你只需要確保將它傳遞給RoR端。 – 2010-02-24 19:26:57
我對您的步驟2和3感興趣。 您是否必須執行任何自定義RPC序列化處理? 你在GWT服務器端使用「向Rails系統提供相應的Ajax請求」的基本機制是什麼?我對GWT-Rails接口特別感興趣。 謝謝! – cellepo 2015-06-21 21:19:54