diff --git a/zh/06.2.md b/zh/06.2.md index 9fccbb5e..282d645c 100644 --- a/zh/06.2.md +++ b/zh/06.2.md @@ -85,6 +85,7 @@ Go实现整个的流程应该也是这样的,在main包中创建一个全局 } ``` >以上设计思路来源于database/sql/driver,先定义好接口,然后具体的存储session的结构实现相应的接口并注册后,相应功能这样就可以使用了,以下是用来随需注册存储session的结构的Register函数的实现。 + ```Go var provides = make(map[string]Provider) @@ -105,6 +106,7 @@ Go实现整个的流程应该也是这样的,在main包中创建一个全局 ### 全局唯一的Session ID Session ID是用来识别访问Web应用的每一个用户,因此必须保证它是全局唯一的(GUID),下面代码展示了如何满足这一需求: + ```Go func (manager *Manager) sessionId() string { diff --git a/zh/06.3.md b/zh/06.3.md index 5ffa3d8d..86a0aada 100644 --- a/zh/06.3.md +++ b/zh/06.3.md @@ -1,5 +1,6 @@ # 6.3 session存储 上一节我们介绍了Session管理器的实现原理,定义了存储session的接口,这小节我们将示例一个基于内存的session存储接口的实现,其他的存储方式,读者可以自行参考示例来实现,内存的实现请看下面的例子代码 +```Go package memory @@ -112,15 +113,17 @@ pder.sessions = make(map[string]*list.Element, 0) session.Register("memory", pder) } - +``` 上面这个代码实现了一个内存存储的session机制。通过init函数注册到session管理器中。这样就可以方便的调用了。我们如何来调用该引擎呢?请看下面的代码 +```Go import ( "github.com/astaxie/session" _ "github.com/astaxie/session/providers/memory" ) - +``` 当import的时候已经执行了memory函数里面的init函数,这样就已经注册到session管理器中,我们就可以使用了,通过如下方式就可以初始化一个session管理器: +```Go var globalSessions *session.Manager @@ -130,7 +133,7 @@ go globalSessions.GC() } - +``` ## links * [目录]() * 上一节: [Go如何使用session](<06.2.md>)