2011-12-13 9 views
8

मेरे पास एक socket.io सर्वर है जिसे "server.js" नामक रेडिस का उपयोग किया जाता है जो एक नोड सर्वर को सक्रिय करता है। वर्तमान में यह इस तरह कुछ है:क्या आपको रेडिस को खुला छोड़ना है, या नोड में प्रत्येक उपयोग के बाद इसे खोलना और छोड़ना है?

var client = redis.createClient() 
var io = require('socket.io').listen(80); 

io.sockets.on('connection', function (socket) { 
    client.set(); // do something with redis 
}); 

फिर मैं अपने सर्वर को आग लगा देता हूं और यह बस जिंदा रहता है। क्या यह गलत है? क्या ऐसा होना चाहिए?

var io = require('socket.io').listen(80); 

io.sockets.on('connection', function (socket) { 
    var client = redis.createClient() 
    client.set(); // do something with redis 
    client.quit(); 
}); 

क्या मुझे खोलने और लाल रंग बंद करना चाहिए, या क्या मैं इसे एक बार खोल सकता हूं और इसे खोल सकता हूं? उपरोक्त स्निपेट में से कौन सा सर्वर शुरू करने का सही तरीका है?

+0

देखें: http://stackoverflow.com/questions/5739357/how-to-reuse-redis-connection -इन-सॉकेट-कब – malletjo

उत्तर

2

पहला वाला प्रीफ़र्ड सिंटैक्स है क्योंकि जब भी कोई ग्राहक सॉकेट.आईओ से कनेक्ट होता है तो आप एक नया रेडिस कनेक्शन नहीं बनाना चाहते हैं। यदि आपके पास 1000 उपयोगकर्ता जुड़े हैं, तो क्या आप रेडिस के लिए 1000 कनेक्शन चाहते हैं या सिर्फ एक (ठीक है क्योंकि आप अधिक सर्वरों को जन्म देंगे)?

रूप @racar का सुझाव दिया, आप एक बार देख भी इस सवाल पर ले जाना चाहिए:

How to reuse redis connection in socket.io?

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