在一个基于expressJS和Socket.io构建的web应用程序上工作。在下面的文章中,我看到了中间件语法的用法,这对我来说是新的。下面是一个语法示例:
const io = require('socket.io')();
io.use(function(socket, next) {
// execute some code
next();
})
.on('connection', function(socket) {
// Connection now authenticated to receive further events
socket.on('message', function(message) {
io.emit('message', message);
});
});
它基本上在socket.io
实例上使用中间件函数。我以前的理解是,中间件只能在express实例(app.use(...)
)上使用。
app.use(。。。)
工作方式类似的常规中间件?
IO.use()
允许您指定为每个新的,传入的Socket.IO连接调用的函数。它可以用于各种各样的事情,例如:
等等。。。
它的用途类似于Express中间件(类似于app.use()
),但这是用于传入的socket.io连接,而不是传入Express管理的常规http请求。如果希望中间件处理传入的http请求,请使用带有app.use()
的Express中间件。如果希望中间件处理传入的socket.io连接,请使用带有io.use()
的socket.io中间件。