羽毛唯一的客户ID?

Feathers unique client id?

我是 运行 一个 feathers.js 应用程序,我正在关注资源更新。我希望能够唯一地识别我是否是发送更新的客户端。最好的表达方式是什么?

如果我在 2 个相同的浏览器 windows 上以同一用户身份登录,我也应该能够判断我是否从当前浏览器更新了资源 window。

编辑:或者有没有办法至少停止向创建它的客户端发送更新?

这需要一些挖掘,但我能够通过一些 custom express middleware 很好地工作。

// 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;
  });
});

它不需要任何客户端设置,但在我的例子中,我使用它来识别会话,所以我确实确保我只为每次页面加载创建一个套接字并在我的所有客户端之间共享它实例。