Socket.io и данные сессии - PullRequest
6 голосов
/ 03 июня 2011

Это подходящий способ хранения данных моего временного приложения?

socket.on('connection', function(client){ 
  client.myappsdata = {
    a: true,
    b: false
  }
}

1 Ответ

9 голосов
/ 03 июня 2011

Я предпочитаю что-то немного более тяжелое.

Псевдокод:

// 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, {
       /* ... */ 
    });
}

В основном каждый клиент имеет sessionId, поэтому храните свои данные в хэшеключом этого идентификатора сеанса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...