don*_*ald 95
您可以使用以下方法轻松完成:
连接:http://senchalabs.github.com/connect/
Connects就像Ruby中的Rack.它为您提供了一个额外的层,您可以在其中"玩"身份验证,会话,cookie等.
其他选择是使用框架:
Express.js:http://expressjs.com/
它似乎是最常用的node.js框架.就像Sinatra for Ruby并且运行在连接之上.
Geddy:http://geddyjs.org/
如果您想要做更复杂的WebApp,Geddy就是您选择的.就像Rails for Ruby.
z5h*_*z5h 13
nodejs提供了一个基本的http API.http是无状态的,会话和会话变量的思想存在于构建于http之上的框架/协议中.http://en.wikipedia.org/wiki/Session_%28computer_science%29
请查看http://geddyjs.org/或http://expressjs.com/作为使用提供会话的节点构建的Web框架的示例.
WeN*_*ers 12
只需将其卸载到memcache或其他一些缓存机制.我不会用这种东西给你的服务器增加负担.超级精益网络服务器必须记住东西的重点是什么.
我也会尝试将您的网站开发为应用程序而不是网站,或将您的网站视为应用程序,使用html5的精彩功能,例如本地存储/本地数据库,并减少服务器和客户端计算机之间的流量.
如果所有其他方法都失败了(或者网站很小)那么什么阻止你编写自己的会话类.没那么难.特别是如果它是一个内存类型的东西.放一些计时器逻辑来超时会话,然后你去.该死的动态语言如JavaScript,应该是一个很好的.
结构应该是一个字典,其中键是会话,值是包含最后通信和功能的详细信息的对象(以允许访问某些功能).添加扫描功能以清除已超时的旧会话.和宾果游戏.基本会话服务.基本检查"是列表中的会话密钥...是/否...获取详细信息"......我认为这就是......或者是否有一些我缺少的功能.
我个人会尽可能避免使用任何第三方工具.时间之沙非常快,您可以始终依赖自己开发的代码.
小智 6
唐纳德的答案很好 - 一旦你进入连接中间件的洋葱模式,你必须决定使用什么类型的会话存储.express中的默认值是MemoryStore,不适合生产使用.以下是您的一些选择:
Mongo https://github.com/mikkel/express-session-mongo - 一定要使用'native_parser:false'选项
Redis https://github.com/visionmedia/connect-redis - 非常好,但如果您还没有将redis用于pub/sub或存储,那么它可能并不理想.
注意,还有其他选择 - 这取决于您的项目.寻找可以利用现有技术堆栈引入的内容.
| 归档时间: |
|
| 查看次数: |
89257 次 |
| 最近记录: |