我在nodejs后端服务器中使用socket.io
。我想为每个事件设置一个中间件。以下是我的代码:
io.use((socket, next) => {
// some logic
return next();
});
此代码仅适用于初始连接。它不适用于套接字中的每个事件。如何为每个套接字事件设置中间件?
我已查看此帖子https://stackoverflow.com/questions/35077449/how-to-bind-middleware-to-events-in-socket-io
和https://stackoverflow.com/questions/18664184/how-to-pass-changes-from-middleware-to-socket-io
,但他们没有按照我的要求行事。我想在不改变每个事件监听器的情况下设置中间件。
答案 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);