Socket.io和会话数据

Tho*_*mas 6 session node.js socket.io

这是存储我的临时应用数据的合适方式吗?

socket.on('connection', function(client){ 
  client.myappsdata = {
    a: true,
    b: false
  }
}
Run Code Online (Sandbox Code Playgroud)

Ray*_*nos 9

我更喜欢稍微沉重的东西.

伪代码:

// ClientManager.js
var Manager = new function() {
    this._clients = [];

    this.set = function(client, data) {
        this._clients[client.sessionId] = data;    
    };

    this.get = function(client) {
        return this._clients[client.sessionId];            
    }

};

module.exports = function() {
    return Object.create(Manager);
};

// main.js
var manager = require("ClientManager")();

/* ... */

socket.on("connection", function(client) {
    manager.set(client, {
       /* ... */ 
    });
}
Run Code Online (Sandbox Code Playgroud)

每个客户端都有一个sessionId将其数据存储在由该sessionId键入的哈希值中