【问题标题】:Websocket with socket.io and express带有 socket.io 和 express 的 Websocket
【发布时间】:2016-10-20 21:16:06
【问题描述】:

我正在尝试将 socket.io 与 express 一起使用,我使用了 express 生成器。我无法从控制台查看任何日志。

在写这篇文章之前,我关注了 Gabriel 投票最多的解决方案 奥特洛克 Using socket.io in Express 4 and express-generator's /bin/www

我的代码:

app.js

var express = require('express');
var socket = require('socket.io');
var app = express();
var io = socket();
app.io = io;
// var for routes
var index = require('./routes/index')(io);
// Routes
app.use('/', index);

module.exports = app;

bin/www

var server = http.createServer(app);
var io = app.io;
io.attach(server);

routes/index.js

var passport = require('passport');
/* GET home page. */
module.exports = function(io){
  var app = require('express');
  var router = app.Router();
  var controller = require('../controllers/indexController');
  router.get('/', controller.plain);
  /*socket*/
  io.on('connection', function(socket){
    console.log('conectado desde index.js');
    console.log('conectado desde index.js');
    console.log('conectado desde index.js');
  });
  return router;
}

controllers/indexController.js

使用 indexController.js 中的完整内容进行编辑

var Account = require('../models/accounts');
var Fav = require('../models/favs');
var Project = require('../models/projects');
var Message = require('../models/messages');
var mongoose = require('mongoose');

module.exports = {
    plain : function (req, res) {
      Project.find(function(err, projects){
        Account.find(function(err, userOwner){
          if(req.user)
            Fav.find({'favUserId': req.user.id},function(err, favs){
              res.render('index',{
                title: "myAplication",
                user: req.user,
                listProjects : projects,
                listUsers : userOwner,
                listFavs : favs
              });
            });
          else
            res.render('index',{
              title: "myAplication",
              listProjects : projects,
              listUsers : userOwner,
            });
        });
      });

    },
};

【问题讨论】:

标签: javascript node.js express websocket socket.io


【解决方案1】:

你可以这样做:

//in app.js
app.set('socketio', io);

//in any route
app.get("/", (req, res) => {
    const io = req.app.get('socketio');
})

【讨论】:

    猜你喜欢
    • 2018-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-01
    • 2013-04-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    相关资源
    最近更新 更多