【问题标题】:How to handle client-sessions in socket.io如何在 socket.io 中处理客户端会话
【发布时间】:2014-02-02 03:23:49
【问题描述】:

我使用客户端会话,而不是快速会话。我怎么能得到会话数据。会话存储在客户端,而不是服务器上。 我使用客户端会话模块https://github.com/mozilla/node-client-sessions

【问题讨论】:

    标签: node.js session socket.io


    【解决方案1】:

    如果您想要客户端上的会话数据,您可以使用模块的内置功能。如果您在服务器上需要它,那么您可以在客户端获取信息,然后使用 socket.io 发出它,例如 socket.emit('sendSocketData', dataToSend);

    【讨论】:

      【解决方案2】:

      我找到了正确的答案,要从 cookie 中获取会话,首先你应该解析 cookie

      handshakeData.cookie = cookie.parse(handshakeData.headers.cookie);
      

      你必须解码 cookie,我使用了客户端会话模块中的原始函数

      var clientSessions = require('./node_modules/client-sessions/lib/client-sessions')
      
          var opts = { 
            cookieName: 'yourSessionName'
            , secret: 'secret'
          }
          var decoded = clientSessions.util.decode(opts, handshakeData.cookie['yourSessionName']) 
      

      解码对象保存你的会话数据

      【讨论】:

      • 您能否为此提供一些链接或文档?
      猜你喜欢
      • 2011-10-22
      • 2012-04-17
      • 2014-04-22
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 2013-08-30
      • 2014-05-26
      相关资源
      最近更新 更多