繁体   English   中英

在node.js中的不同路由之间使用socket.io

[英]Use socket.io across diffrent routes in node.js

我的node js应用程序中有不同的路由,现在我想在每条路由中使用socket.io来使我的node和实时react js应用程序。 但是,我的节点js应用程序具有以下结构。

router.js

const express = require('express');
const router = express.Router();

const worksheetController = require('../controllers/worksheet');
const attendenceController = require('../controllers/attendence');

router.route('/worksheets')
 .get(
    worksheetController.getWorksheet
 )
 .post(
    worksheetController.validateWorksheet,
    worksheetController.addWorksheet,
    attendenceController.markAttendence
 );

router.route('/attendances')
 .get(
    attendenceController.getAttendance
 );

module.exports = router;

server.js

const express = require('express');
const router = require('./router');

const app = express();
app.use('/api', router);

app.listen('5000', () => {
  console.log('Listening on port');
});

module.exports = app;

如何将socket.io用于不同的路由?

您不需要关联快速路由和socket.io事件。 他们是两个不同的东西。 也许您可以像在快速路由中一样,在控制器中添加相关逻辑并从socket.io事件中调用函数。

例如:

const worksheetController = require('../controllers/worksheet');

io.on('connection', function (socket) {
  socket.on('my event', function (data) {
    const myData = worksheetController.getDataForOtherEvent(data);
    console.log(myData);
  });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM