6
Bu, geçici uygulama verilerimi depolamak için uygun bir yol mu?Socket.io ve oturum verileri
socket.on('connection', function(client){
client.myappsdata = {
a: true,
b: false
}
}
Bu, geçici uygulama verilerimi depolamak için uygun bir yol mu?Socket.io ve oturum verileri
socket.on('connection', function(client){
client.myappsdata = {
a: true,
b: false
}
}
Biraz daha ağır bir şey tercih ederim.
Sözde Kod:
// 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, {
/* ... */
});
}
bassically her istemci bir sessionId
böylece sessionid
Yapıyorum nasıl yapılacağını değil bir neden var anahtarlı bir karma kendi veri deposu var? – Thomas
@ Yukarıdaki yöntem daha genişletilebilir. Ayrıca 'client' nesnesinin her yere geçtiğinden emin olmak için socket.io kodunun tamamını avlamak zorunda kalacağım. Bildiğim şey, 'sessionId' 'in bir istemciye eklenecek bir anahtar/karma kullanmak için güvenli olmasıdır. Bu nedenle, verileri – Raynos
@Raynos tarafından anahtar kelimeyle kaydedilen bir karede saklayın, çözümünüzü her iki tarafa da iletmelisiniz, çünkü hem alma hem de ayarlama yöntemleri istemci nesnesine ilk parametre olarak sahip değil, değil mi? Yani, IMO, normal ve önlenemez, çünkü müşterinin verilerini almak için bir referans almamız gerekiyor. – Qlimax