自定义Socket.IO中间件错误事件?

Socket.IO允许中间件function传递错误。

var io = require('socket.io')(); io.use(function(socket, next){ if (socket.request.headers.cookie) return next(); next(new Error('Authentication error')); }); 

客户端可以通过侦听默认的“错误”事件来监听这些错误。

 clientIO.on('error', function(err) { console.log(err); } 

有没有办法让Socket.IO中间件发出自定义事件名称而不是“错误”(例如,'authentication_error')?

从我在代码库中看到的,它看起来不像它。 错误消息通过特殊的数据包types发送,触发客户端中的error事件,所以在这方面它不是一个常规的消息(你可以用另一种typesreplace)。

但是,您可以select传递错误的数据,但是:

 // server io.use(function(socket, next){ if (socket.request.headers.cookie) return next(); let err = new Error('Authentication error'); err.data = { type : 'authentication_error' }; next(err); }); // client clientIO.on('error', function(err) { if (err.type === 'authentication_error') { ... } else { ... } }