[英]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.