当前位置 : 主页 > 网页制作 > Nodejs >

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

来源:互联网 收集:自由互联 发布时间:2021-06-16
我正在尝试将Socket.io与Node.js一起使用并发送到路由逻辑中的套接字. 我有一个相当标准的Express 3设置和一个位于路由中的server.js文件,然后我有一个index.js,它位于路径文件夹中,用于导出
我正在尝试将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);
网友评论