go语言网络编程之session的实现( 二 )


目前市场上有很多go web的框架,里面都实现了session,当然框架中的实现要比我写的这个完善的多,但是我这个主要是帮助大家加深对web中session的理解,这样即使以后大家看框架的源码时,看到session这部分也不会陌生,而且理解速度也会更快 。
首先有一个session manager,用来管理session,在创建sessionmgr同时,创建一个协程,用来管理session是否有效,既SessionGC() 。如果有每隔一段时间判断所有session是否有过期的,有则删除掉 。然后我们有NewSession和EndSession方法,用来创建session和结束一个session,同时可以将session的对于信息传给cookie 。我们还可以对session设置值,根据不同的业务需求,我们可以对每一个session存储一些特定的值,这里我们使用一个map来存储 。还有一个重要的接口就是CheckCookieValid() 。有了请求之后,我们可以判断发送过来的cookie的数据是否正确,这里我们认为cookie中的value就是sessionID,如果根据sessionID找到对应的session,就说明有效,同时更新session的last time信息 。如果没有则返回错误 。
【go语言网络编程之session的实现】这个是非常简单的,如果大家需要自己动手写session,可以参考这个,但是有很多细节都需要根据实际情况来处理,希望大家都能够随机应变,活学活用 。
 




推荐阅读