微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

node.js – 在快速路由文件中使用socket.io

我正在尝试将Socket.io与Node.js一起使用并发送到路由逻辑中的套接字.

我有一个相当标准的Express 3设置和一个位于路由中的server.js文件,然后我有一个index.js,它位于路径文件夹中,用于导出站点的所有页面/可公开访问的功能.所以他们看起来像:

exports.index = function (req,res) {
    res.render('index',{
        title: "Awesome page"
    });
};

与server.js中定义的路由类似:

app.get('/',routes.index);

我假设我必须在server.js中创建socket.io对象,因为它需要服务器对象,但是如何访问该对象并从index.js导出函数向它发出?

解决方法

您可以将路径文件设置为函数,并在需要该文件时传递Socket.IO对象.

module.exports = function(io) {
  var routes = {};
  routes.index = function (req,res) {
    io.sockets.emit('payload');
    res.render('index',{
      title: "Awesome page"
    });
  };
  return routes;
};

然后需要这样的路线:

var express = require('express');
var app = express();
var http = require('http');
var server = http.createServer(app);
var io = require('socket.io').listen(server);
var routes = require('./routes')(io);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐