2012-04-30 3 views
5

मैं एक socket.io सर्वर जो सॉकेट को सुनता है? यदि दो ग्राहक myEvent ईवेंट उत्सर्जित करेंगे, तो यह दोनों ग्राहकों के लिए एक ही समय में काम करेगा? या यह एक के बाद एक संभाला जाएगा?सॉकेट.आईओ मल्टीथ्रेड है?</p> <pre><code>io.sockets.on('connection', function(socket){ socket.on('myEvent', function(data){ socket.emit('eventReceived', { status: 1 }); }); }); </code></pre> <p>इस कोड multithread में काम कर रहा है:

बहुत धन्यवाद!

+1

नहीं में एक प्रायोगिक क्लस्टर मॉड्यूल उपलब्ध नहीं है, यह थ्रेड नहीं है। Node.js एक थ्रेडेड इवेंट लूप का उपयोग करता है। [यह उत्तर] देखें (http://stackoverflow.com/questions/9362823/why-is-a- कार्यक्षमता-and-a-callback-non-blocking-in-node-js/9363071#9363071) मेरे लिए आगे की व्याख्या। –

+0

यदि Node.js multithreaded नहीं है, तो इसका मतलब है कि सॉकेट.आईओ भी बहुप्रचारित नहीं है? – udidu

+1

बिल्कुल। आप मैसेजिंग के लिए एक वितरित बैकएंड चलाकर स्केल कर सकते हैं, इसमें एक [रेडिस स्टोर] (https://github.com/LearnBoost/socket.io/blob/master/lib/stores/redis.js) बनाया गया है। –

उत्तर

1

Node.js में कुछ भी नहीं है, एनपीएम के माध्यम से उपलब्ध किसी भी पैकेज सहित बहुप्रचारित है। कोर

http://nodejs.org/docs/v0.10.2/api/cluster.html

+0

सिर्फ इसलिए कि नोड.जेएस में एक इवेंट लूप है, इसका मतलब यह नहीं है कि दृश्यों के पीछे हुड के नीचे असीमित प्रक्रियाएं बहु-थ्रेडेड नहीं हैं। क्योंकि कई हैं। यहां एक लेख है जो उस संबंध में एक समस्या को संबोधित करता है: https://www.future-processing.pl/blog/on-problems-with-threads-in-node-js/ – user1588877

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