【问题标题】:What is wrong with my node.js + express + socket.io application?我的 node.js + express + socket.io 应用程序有什么问题?
【发布时间】:2013-02-16 23:46:01
【问题描述】:

我之前设置了我的应用程序,以便它可以工作。我最近改变了几件事的顺序,现在它坏了。我希望有人知道使用 socket.io(在 heroku 上)设置节点/快速应用程序的最佳方法。我想我错过了一些东西,因为我似乎无法让它工作。

这是我当前的 app.js 坏了:

var express = require('express'), 
    app = express.createServer(express.logger()),
    io = require('socket.io'),
    routes = require('./routes'), 
    chatroom = require('./routes/chatroom'), 
    http = require('http'),
    path = require('path');

io.configure(function () {
  io.set("transports", ["xhr-polling"]);
  io.set("polling duration", 10);
});

var socket = io.listen(app);

app.configure(function(){
    app.set('port', process.env.PORT || 3000);
    app.set('views', __dirname + '/views');
    app.set('view engine', 'jade');
    app.use(express.favicon());
    app.use(express.logger('dev'));
    app.use(express.bodyParser());
    app.use(express.methodOverride());
    app.use(app.router);
    app.use(express.static(path.join(__dirname, 'public')));
});

app.get('/', routes.index);
app.get('/room/:chatroom', chatroom.create_room);
app.get('/privateroom/:chatroom', chatroom.create_private_room);

var port = process.env.PORT || 3000;
app.listen(port);

【问题讨论】:

  • 你的应用怎么破?

标签: node.js heroku express socket.io


【解决方案1】:

这就是我所拥有的

/**
 * Module dependencies.
 */

var express = require('express')
  , http = require('http')
  , path = require('path')
  , io = require('socket.io');

var app = express()
  , server = http.createServer(app)
  , io = io.listen(server);

var db = require('./server/db');

/**
 * Config.
 */

    app.configure(function() {
      app.set('port', process.env.PORT || 3000);
      app.set('views', __dirname + '/public/views');
      app.set('view engine', 'ejs');
      app.use(express.favicon(__dirname + '/public/images/favicon.ico'));
      app.use(express.logger('dev'));
      app.use(express.bodyParser());
      app.use(express.methodOverride());
      app.use(express.cookieParser('any-text'));
      app.use(express.session({
        secret: 'any-text'
      }));
      app.use(app.router);
      app.use(express.static(path.join(__dirname, 'public')));
    });

    app.configure('development', function() {
      app.use(function(req, res, next){
        res.send(404, 'Sorry, page not found!');
      });
      app.use(express.errorHandler());
    });

/**
 * App.
 */

    require('./server/routes')(app, db);

    server.listen(app.get('port'), function() {
        console.log("Server listening on port " + app.get('port'));
    });

    require('./server/sockets')(io, db);

有用的链接 https://github.com/visionmedia/express/wiki/Migrating-from-2.x-to-3.x http://socket.io/#how-to-use

【讨论】:

  • 谢谢 - 我昨晚开始工作了,但这正是我需要/将使用的参考。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-12
  • 2013-01-04
  • 1970-01-01
  • 2014-02-06
  • 1970-01-01
  • 2013-05-25
  • 1970-01-01
相关资源
最近更新 更多