我可以将Feathers用于使用从外部来源更新的数据的实时网站吗?

时间:2018-07-24 21:40:11

标签: feathersjs

the docs中,它指出Service仅在Service方法修改数据时才发出事件。在我所看到的所有示例中,都是如此,其中一个客户端从浏览器本身修改了该数据,并在其他客户端(例如聊天Webapp)中自动对其进行了更新。但是,如果在Feathers外部从外部修改我的数据怎么办?我能否使用Feathers以便在所有客户端中更新数据?

在我的特定情况下,我的数据实际上存储在MongoDB数据库中,该数据库在外部和外部自动更新。我希望我的Web应用程序使用MongoDB Change Streams来监听MongoDB数据库上的更改(我已经知道如何执行此操作),然后我希望Feathers负责将更新实时发送给我的所有客户端。

在示例聊天应用程序中,这等同于拥有一个机器人,该机器人还将消息直接写到Feathers之外的数据库中,并且该消息也应实时广播给客户端。

我的用例是否适合羽毛装饰?关于我应该如何处理的任何提示?

1 个答案:

答案 0 :(得分:1)

观看feathers-rethinkdb here的变更馈送。对于MongoDB,可以执行类似的操作,但是this issue中讨论了一些挑战。

如果您的MongoDB集合仅在外部进行更新,您还可以创建一个简单的传递服务,如下所示:

app.use('/feed/messages', {
  async create(data) {
    return data;
  },

  async remove(id) {
    return { id };
  },

  async update(id, data) {
    return data;
  },

  async patch(id, data) {
    return data;
  }
});

然后由changefeed观察者调用哪个,它将自动处理通过其事件更新所有客户端的情况。