Перо уникальный идентификатор клиента? - PullRequest
2 голосов
/ 01 марта 2020

Я запускаю приложение из перьев. js и слежу за обновлениями на ресурсе. Я хочу иметь возможность однозначно определить, являюсь ли я клиентом, отправившим обновление. Как лучше всего это сказать?

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

РЕДАКТИРОВАТЬ: Или есть способ хотя бы прекратить отправку обновления клиенту, который сделал это?

1 Ответ

1 голос
/ 12 апреля 2020

Это заняло некоторое копание, но я смог довольно неплохо это заработать с некоторыми пользовательскими express промежуточными программами .

// app.js

app.configure(
  socketio(io => {
    io.use((socket, next) => {
      socket.feathers.connectionID = socket.client.id;
      next();
    });
  })
);
// myService.service.js (or wherever you set up your channels)

service.publish((data, context) => {
  return app.channel(...).filter((connection) => {
    const senderConnectionID = context.params.connection.connectionID;
    const thisConnectionID = connection.connectionID;
    return senderConnectionID !== thisConnectionID;
  });
});

Это не требует какой-либо настройки на стороне клиента, но в моем случае я использую это для идентификации сеансов, поэтому я действительно удостоверился, что создавал только один сокет на загрузку страницы и делиться им между всеми экземплярами моего клиента.

...