SocketIO: есть ли способ отправить токен с каждым сообщением? - PullRequest
1 голос
/ 13 марта 2019

Я знаю, что SocketIO поддерживает параметры запроса для начального соединения, например:

const socket = io({
  query: {
    token: 'cde'
  }
});

Это все хорошо и приятно, но мне интересно, есть ли способ «добавить» некоторые данные ккаждое сообщение, отправленное клиентом, должно быть проверено на сервере.

Из клиентских API-файлов кажется, что метод "emit" не поддерживает какой-либо объект параметров, но, возможно, я пропускаю что-то в другом месте.

Как это можно сделать?Конечно, я мог бы просто отправить некоторые дополнительные данные как последний аргумент для функции emit, а затем использовать объект arguments для его извлечения, но это не выглядит как очень чистое решение.

1 Ответ

2 голосов
/ 13 марта 2019

Socket.emit аналогичен ws send узла node.js, т. Е. Отправляет на сервер необработанные данные фреймов, поэтому опция присоединения токена в качестве последнего аргумента кажется подходящей.

Чтобы получить более чистое решение, вы можете абстрагировать emit другим методом, который принимает в качестве аргумента сообщение obj, затем он добавит ваш токен в каждый запрос и, наконец, выдаст его.

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