【问题标题】:Use socket.io across diffrent routes in node.js在 node.js 中跨不同路由使用 socket.io
【发布时间】:2019-01-02 14:00:29
【问题描述】:

我的node js 应用程序中有不同的路由,现在我想在每条路由 中使用socket.io 来使我的nodereact js 应用程序实时。但是,我的 node 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 用于不同的路由?

【问题讨论】:

    标签: javascript node.js socket.io


    【解决方案1】:

    您不需要关联快速路由和 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);
      });
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-28
      • 2019-10-17
      • 2018-10-06
      • 1970-01-01
      • 1970-01-01
      • 2016-10-18
      • 2021-05-14
      • 2017-06-29
      相关资源
      最近更新 更多