如何在socket.io的中间件中获取事件详细信息

时间:2015-10-01 08:30:28

标签: node.js logging socket.io

我正在尝试为我的Node服务器上的每个事件记录event nameparameter。为此我用了

io.use(function(socket, next){
  // how to get event name out of socket.
});

现在,我在试图获取事件名称和参数时遇到困难。对我来说,它似乎是API开发人员的共同需求,所以我很确定必须有一些方法来获取它,我已经尝试阅读文档和源代码,但我无法得到这些东西。

1 个答案:

答案 0 :(得分:3)

套接字事件需要正确处理,无论如何,如果没有处理事件,就不会有响应。

var io = require('socket.io')(server);
var sessionMiddleWare=(session({secret: 'secret key', resave: true, saveUninitialized: true,cookie: { path: '/', httpOnly: true, maxAge: 300000 },rolling: true}));

app.use(sessionMiddleWare)

io.use(function(socket, next) {
  sessionMiddleWare(socket.request, socket.request.res, next);
});

io.on('connection', function(socket) {  // On Socket connection.
   // inside this you can use different events

   //event name and parameters can be found in socket variable.

   console.log(socket.id) // prints the id sent from the client.
   console.log(socket.data) // prints the data sent from the client.

   // example event

   socket.on('subscribe', function(room) {  // Event sample.
        console.log('joining room', room);
        socket.room=room;
        socket.join(room);
    });
})

希望这有帮助。