Add 0.6.3.md syntax highlighting
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
* [目录](<preface.md>)
|
||||
* 上一节: [Go如何使用session](<06.2.md>)
|
||||
|
||||
Reference in New Issue
Block a user