如何将中间件绑定到socket.io中的事件

时间:2017-11-16 05:44:33

标签: node.js socket.io

我在nodejs后端服务器中使用socket.io。我想为每个事件设置一个中间件。以下是我的代码:

io.use((socket, next) => {
     // some logic
     return next();
});

此代码仅适用于初始连接。它不适用于套接字中的每个事件。如何为每个套接字事件设置中间件?

我已查看此帖子https://stackoverflow.com/questions/35077449/how-to-bind-middleware-to-events-in-socket-iohttps://stackoverflow.com/questions/18664184/how-to-pass-changes-from-middleware-to-socket-io,但他们没有按照我的要求行事。我想在不改变每个事件监听器的情况下设置中间件。

1 个答案:

答案 0 :(得分:1)

听起来你正在寻找"通配符事件"。我个人建议您尝试socketio-wildcard

该页面的摘录:

npm install --save socketio-wildcard
var io         = require('socket.io')();
var middleware = require('socketio-wildcard')();

io.use(middleware);

io.on('connection', function(socket) {
  socket.on('*', function(packet){
    // client.emit('foo', 'bar', 'baz')
    packet.data === ['foo', 'bar', 'baz']
  });
});

io.listen(8000);