Как хранить связанные с клиентом данные в socket.io 1.0

документы говорят сокет.io не поддерживает .получить.теперь набор

можно ли хранить связанные с клиентом данные, такие как

io.sockets.on('connection', function (client) {
    client.on('data', function (somedata) {            
        client['data'] = somedata;
    });    
});

в случае, если мне нужно несколько узлов?

2 ответов


Да, можно добавить свойства в сокет.io


Да, это возможно, пока нет других встроенных свойств с тем же именем.

io.sockets.on('connection', function (client) {
    client.on('data', function (somedata) {  
        // if not client['data']  you might need to have a check here like this
        client['data'] = somedata;
    });    
});

Я бы предложил другой способ, но с ECMAScript 6 слабые карты

var wm = new WeakMap();

io.sockets.on('connection', function (client) {
    client.on('data', function (somedata) {   
        wm.set(client, somedata);
        // if you want to get the data
        // wm.get(client);
    }); 
    client.on('disconnect', function() {
        wm.delete(client);
    });   
});