Node.js 带有socket.io和expressjs的节点集群
这是我的服务器代码: 我正在尝试将集群与socket.io和expressjs一起使用。我正在我的四核桌面上测试这个Node.js 带有socket.io和expressjs的节点集群,node.js,redis,socket.io,cluster-computing,node-cluster,Node.js,Redis,Socket.io,Cluster Computing,Node Cluster,这是我的服务器代码: 我正在尝试将集群与socket.io和expressjs一起使用。我正在我的四核桌面上测试这个 var cluster = require('cluster') var numCPUs = require('os').cpus().length if (cluster.isMaster) { // Fork workers. for (var i = 0; i < numCPUs; i++) { cluster.fork() } conso
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();
}
var cluster=require('cluster'))
var numpus=require('os').cpus().length
if(cluster.isMaster){
//叉工。
对于(变量i=0;i
有什么明显的错误吗
日志显示每件事都会发生4次。这似乎是正确的。但是我的socket.io的通道用户还指出,每当我连接到一个页面时,我会连接4次(创建4个用户套接字)。这似乎是错误的。我如何修复它,以及我的代码是否存在其他问题。谢谢。目前,
socket.io
不完全支持node.js集群。它在websocket
传输中运行良好,但xhr池
失败。您可以在以下问题中了解更多信息:。问题是xhr池
请求可以进入与最初授权的线程不同的线程。谢谢,我实际上只使用websocket,忽略了在代码中包含它,我现在已经更新了它。xhr轮询除了这里提到的问题之外还有一些问题,websocket通常通过SSL是可靠的。我也有同样的问题。核心数中的重复消息。我尝试了所有的组合,但没有运气。你找到解决办法了吗?