传递套接字数据以表达中间件路由

时间:2018-04-01 21:08:41

标签: node.js express socket.io

我正在使用express.js和socket.io。我在app.js设置了它们。 var indexRouter = require('./routes/index'); var userRouter = require('./routes/user'); app.use('/', indexRouter); app.use('/user', userRouter); 中的路由设置如下:

socket.io
app.js

let io = socketio(server); io.on('connection', function (socket) { let clients = Object.keys(io.engine.clients); })

clients

如何将userRouter变量传递给<?php $management = '%%CATEGORY-POINTS-1%%'; switch ($management) { case '1': echo 'A'; break; case '2': echo 'B'; break; case '3': echo 'C'; break; default: echo 'D'; break; } ?>

1 个答案:

答案 0 :(得分:0)

使用注册表对象和工厂:

const manager = {clients: []};

userRouterFactory(socketManager) {
    return function(req, res, next) {
        // indexRouter code
        res.json(socketManager.clients); // Example of client variable usage
    };
}

socketFactory(socketManager) {
    return function(socket) {
        socketManager.clients = Object.keys(io.engine.clients);
    };
}

app.use(userRouterFactory(manager));

io.on('connection', socketFactory(manager));