Feathers.js 和后台作业,如何触发服务事件(或实时更新客户端)

Feathers.js and background jobs, how to trigger service event (or realtime update clients)

稍微浏览了一下 feathers 文档,我了解到它是基于服务和挂钩的,并且服务具有的事件也有助于在服务器和客户端之间提供实时同步。

只要事情很简单,就像我理解的文档一样,基本上生成服务然后 adding/saving/updating 使用服务方法将触发事件。

我的情况有点不同:

如何在羽毛中做到这一点?

这两种情况都可以像这样使用 Feathers 处理:

Feathers 服务不需要 必须绑定到 table。您可以像在任何其他框架(控制器)中一样实现 custom service。创建聚合不同服务调用或使用 service.Model 直接访问您正在使用的 ORM 的 Dashboard 服务并不少见:

class MyService {
  find(params) {
    const userModel = this.app.service('users').Model;
    const invoiceModel = this.app.service('invoices').Model;

    return userModel.doSomething()
      .then(data => invoiceModel.doSomethingElse());
  }

  setup(app, path) {
    this.app = app;
  }
}

后台工作人员也应该使用 Feathers API(在 Node 中,这可以通过直接通过 const app = require('./src/app') 使用应用程序或通过 Feathers as the client 透明连接来完成)以便所有连接的客户端将自动获得更新。那么应该不需要手动触发事件(这伴随着警告,比如还必须通过任何更改数据的挂钩 运行 你的原始数据)。