2011-06-03 17 views

उत्तर

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

bassically प्रत्येक ग्राहक एक sessionId तो एक हैश कि sessionId

+0

यह करने के लिए नहीं कैसे मैं यह कर रहा हूँ किसी भी कारण से keyed में अपने डेटा स्टोर है? – Thomas

+0

@ उपरोक्त विधि थॉमस अधिक एक्स्टेंसिबल है। इसके अलावा मुझे यह सुनिश्चित करने के लिए सभी क्लाइंट.ओ कोड पर शिकार करना होगा कि 'क्लाइंट' ऑब्जेक्ट हर जगह चारों ओर पारित हो। मुझे क्या पता है कि क्लाइंट को संलग्न करने के लिए 'sessionId' कुंजी/हैश का उपयोग सुरक्षित है। तो अपने समाधान के साथ sessionId – Raynos

+0

@Raynos द्वारा की गई हैश में डेटा संग्रहित करें, आपको क्लाइंट को हर जगह पास करना होगा, क्योंकि दोनों प्राप्त करने और सेट विधियों के पास क्लाइंट ऑब्जेक्ट पहले पैरामीटर के रूप में है, है ना? यही है, आईएमओ, सामान्य और टालने योग्य नहीं, क्योंकि हमें डेटा प्राप्त करने के लिए ग्राहक का संदर्भ प्राप्त करना होगा। – Qlimax

संबंधित मुद्दे