Промежуточное ПО Socket.IO, io.use - PullRequest
0 голосов
/ 24 апреля 2018

Работа над веб-приложением, созданным на основе expressJS и Socket.io.В следующем посте я увидел использование синтаксиса промежуточного программного обеспечения, который был для меня новым.Вот пример синтаксиса:

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(...)).

Вопросы:

  1. Является ли этот синтаксис обычным промежуточным ПО, которое работает аналогично app.use(...)?
  2. Если оно отличается, в чем разница?

1 Ответ

0 голосов
/ 25 апреля 2018

io.use() позволяет указать функцию, которая вызывается для каждого нового входящего соединения socket.io. Его можно использовать для самых разных вещей, таких как:

  1. Вход
  2. Аутентификация
  3. Управление сессиями
  4. Ограничение скорости
  5. Подтверждение соединения

И так далее ...

Его назначение аналогично промежуточному программному обеспечению Express (например, с app.use()), но оно предназначено для входящих соединений socket.io, а не для входящих запросов HTTP, которыми управляет Express. Если вы хотите, чтобы промежуточное ПО обрабатывало входящий HTTP-запрос, используйте промежуточное ПО Express с app.use(). Если вы хотите, чтобы промежуточное ПО обрабатывало входящее соединение socket.io, используйте промежуточное ПО socket.io с io.use().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...