如何从routes / index访问io.emit()? 在快递4.15上
这个问题在这里已经有了答案:
我想你已经使用生成app.js和bin / www文件的express生成器生成应用程序,在路径内部使用io对象时存在循环依赖关系问题。 以下是你可以做的事情,
在app.js中
app.io = require('socket.io')(); // initialize io, attach server in www
// use socket events here
app.io.on('connection', function(socket){
// do whatever you want
})
// you can pass app.io inside the router and emit messages inside route.
const userRoute = require('./routes/user')(app.io);
app.use('/users', userRoute);
在bin / www中
var io = app.io;
var server = http.createServer(app);
io.attach(server);
下面是路由器的样子,user.js
module.exports = function(io){
router.get('/', function(req, res, next){
io.emit("message", "your message");
res.send();
})
// edited
return router;
}
注意:我还没有尝试过。
但是你可以尝试这种模式吗?
在www.js
module.exports = function(io) {
io.on('connection', function(client) {
console.log('Client connected...');
client.on('join', function(data) {
console.log(data);
});
});
}
在index.js中
var server = http.createServer(app);
io = require('socket.io')(server);
require('./wwww.js)(io);
链接地址: http://www.djcxy.com/p/33037.html
上一篇: How to access io.emit() from routes/index? on express 4.15
下一篇: I'm trying to connect to oracledb from node facing the below error