Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 具有socket.io和expressjs的节点集群大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这是我的服务器代码

我正在尝试使用带有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()
  }

  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次.这似乎是正确的.但我的socket.io的频道用户也表示每当我连接到一个页面时,我连接4次,(创建4个用户套接字).这似乎是错的.我如何解决它,我的代码还有其他问题.谢谢.

解决方法

此时socket.io没有对node.js集群的完全支持.使用websocket传输它对我来说很好,但是xhr-pooling失败了.你可以在这个问题上进行更多的讨论: #939,#917.问题是xhr-pooling请求可以进入与最初授权的线程不同的线程.

大佬总结

以上是大佬教程为你收集整理的node.js – 具有socket.io和expressjs的节点集群全部内容,希望文章能够帮你解决node.js – 具有socket.io和expressjs的节点集群所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。