2015-12-22 73 views
1

Vert.x內置會話存儲LocalSessionStore和ClusteredSessionStoreImpl使用本地地圖存儲會話。如果我使用Redis或任何數據存儲進行會話管理,我不能直接序列化它們,因爲它們沒有正確定義的getter和setter。此外,SessionImpl將id設置爲不帶setter的專用字段。所以,即使我有代理類,我不能重新創建會話。使用外部存儲進行Vert.x會話管理

如何在外部存儲會話?

回答

1

SessionImpl實現了ClusterSerializable接口,它提供了2個方法 - writeToBuffer和readFromBuffer。 你可以使用它們序列化/反序列化到外部存儲,如redis。

+0

我認爲正確的做法是實施SessionStore,因爲redis請求需要是異步的。 writeToBuffer和readFromBuffer是同步的,因爲它們不提供回調,而且您也沒有可用的信息在低級別做出正確的決定。 – ieugen