FeathersJS & Socket.io - определить, откуда поступил запрос - PullRequest
0 голосов
/ 21 января 2019

Проблема, которую я пытаюсь решить, состоит в том, что у нас есть приложение с мобильным клиентом, а также веб-клиент только для администратора, которые оба подключаются к серверной части с помощью клиента Socket.IO/Feathers.

Я хотел бы иметь возможность применять хуки или иным образом изменять запрос или ответ, определяя, пришел ли запрос от клиента администратора или нет.

Из того, что я пробовал до сих пор, я обнаружил, что не могу получить доступ к заголовкам на стороне сервера, таким как исходный клиентский URI (то есть, чтобы определить, пришел ли запрос от admin.mysite.com) с помощью Socket Провайдер .IO, и что добавление заголовков через Socket.IO не работает, когда транспорт настроен на websockets из-за спецификации .

Я также посмотрел каналы, которые выглядят как отличная идея, но примеры помещают людей в каналы на основе пользовательских данных, а не запрашивают данные.

Кто-нибудь знает разумный способ сделать это?

1 Ответ

0 голосов
/ 25 января 2019

Транспортная документация Feathers Socket.io показывает, как передавать информацию из Socket.io в Feathers . socket.request содержит информацию о первоначальном HTTP-запросе.

app.configure(socketio(function(io) {
  io.use(function (socket, next) {
    socket.feathers.isSomeServer = socket.request.connection.remoteAddress === myServerIp;
    next();
  });
}));

Теперь вы можете проверить params.isSomeServer.

...