Đây là mã máy chủ của tôi:cụm nút với socket.io và expressjs
Tôi đang cố gắng sử dụng cụm với socket.io và expressjs. Tôi đang thử nghiệm này trên máy tính để bàn lõi tứ của tôi.
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();
}
Có điều gì nổi bật thực sự sai không?
Nhật ký cho biết mọi thứ diễn ra 4 lần. Điều đó có vẻ đúng. Nhưng người dùng kênh của socket.io cũng chỉ ra rằng bất cứ khi nào tôi kết nối với một trang, tôi kết nối 4 lần, (tạo 4 ổ cắm người dùng). Điều đó có vẻ sai. Làm thế nào để sửa chữa nó và có những thứ khác sai với mã của tôi. Cảm ơn.
Tôi có cùng một vấn đề. Thư trùng lặp trong số lõi. Tôi đã thử tất cả các kết hợp trên mạng và không có may mắn. Bạn đã tìm thấy bất kỳ sửa chữa cho điều này? – Maziyar