Не углубляясь в код, я предполагаю, что socket.io
подключает прослушиватель к HTTP-серверу, который запускается до того, как Express вообще сможет обработать запрос.
Вы можете использовать опцию allowRequest
дляsocket.io
для отклонения нежелательных запросов:
const io = require('socket.io')(app, {
path: '/socket',
allowRequest: (req, callback) => {
if (CHECK_FOR_ROBOT) {
return callback(null, false);
} else {
return callback(null, true);
}
}
});