在the docs中,它指出Service仅在Service方法修改数据时才发出事件。在我所看到的所有示例中,都是如此,其中一个客户端从浏览器本身修改了该数据,并在其他客户端(例如聊天Webapp)中自动对其进行了更新。但是,如果在Feathers外部从外部修改我的数据怎么办?我能否使用Feathers以便在所有客户端中更新数据?
在我的特定情况下,我的数据实际上存储在MongoDB数据库中,该数据库在外部和外部自动更新。我希望我的Web应用程序使用MongoDB Change Streams来监听MongoDB数据库上的更改(我已经知道如何执行此操作),然后我希望Feathers负责将更新实时发送给我的所有客户端。
在示例聊天应用程序中,这等同于拥有一个机器人,该机器人还将消息直接写到Feathers之外的数据库中,并且该消息也应实时广播给客户端。
我的用例是否适合羽毛装饰?关于我应该如何处理的任何提示?
答案 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观察者调用哪个,它将自动处理通过其事件更新所有客户端的情况。