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,可以参考这个,但是有很多细节都需要根据实际情况来处理,希望大家都能够随机应变,活学活用 。
推荐阅读
- 算法与数据结构入门:栈与递归
- 英国女王也喜欢的英德红茶被誉为中国红茶后起之秀
- 领导想赶走你的时候 领导之前热情后冷落
- 招聘|毕业多年才懂,社招与校招两个的差距在哪里,懊悔之前不上心
- 探访英德红茶
- 微信电话弹出 微信正在打电话
- 锡兰红茶揭秘 该茶是世界三大红茶之
- 锡兰红茶为什么能成为世界三大红茶之
- 寒衣节是三大鬼节之一 鬼节是几月几号
- 快手内测10分钟长视频:短视频平台的长视频之战已打响