यहाँ अपने सर्वर कोड है। मैं अपने क्वाड कोर डेस्कटॉप पर इसका परीक्षण कर रहा हूं।नोड क्लस्टर
var cluster = require('cluster')
var numCPUs = require('os').cpus().length
if (cluster.isMaster) {
// Fork workers.
for (var i = 0; i < numCPUs; i++) {
cluster.fork()
}
console.log(new Date());
}
else {
// get required modules
var connect = require('connect');
var express = require('express');
var mongo = require('mongodb');
var MongoStore = require('connect-mongo')(express);
var server;
var redis = require('redis');
var http = require('http');
// create server object
app = exports.module = express();
function configureServer() {
//configure environments
app.configure('production', function() {
app.use(express.errorHandler());
});
//configure server instance
app.configure(function() {
app.use(express.compress())
// set jade as default view engine
app.set('view engine', 'jade');
app.use(express.bodyParser());
app.use(express.cookieParser("refdgfd"));
app.use(express.methodOverride());
app.use(app.router);
// use express logger
});
loadModules();
}
var server = http.createServer(app).listen(80);
socket = require('socket.io').listen(server);
var RedisStore = require('socket.io/lib/stores/redis')
, pub = redis.createClient()
, sub = redis.createClient()
, client = redis.createClient();
socket.set('store', new RedisStore({
redisPub : pub
, redisSub : sub
, redisClient : client
}));
socket.configure(function() {
socket.set('log level', 1);
socket.set('transports', ['websocket']);
});
configureServer();
}
क्या कुछ भी वास्तव में गलत है?
लॉग इंगित करते हैं कि सबकुछ 4 गुना होता है। जो सही ढंग से लगता है। लेकिन मेरे सॉकेट.io के चैनल उपयोगकर्ता यह भी संकेत देते हैं कि जब भी मैं किसी पृष्ठ से कनेक्ट होता हूं, तो मैं 4 बार कनेक्ट करता हूं, (4 उपयोगकर्ता सॉकेट बनाएं)। यह गलत लगता है। मैं इसे कैसे ठीक कर सकता हूं और मेरे कोड के साथ अन्य चीजें गलत हैं। धन्यवाद।
मुझे बिल्कुल वही समस्या है। कोर की संख्या में डुप्लिकेट संदेश। मैंने वहां सभी संयोजनों की कोशिश की है और कोई भाग्य नहीं है। क्या आपको इसके लिए कोई फिक्स मिला है? – Maziyar