我可以将 Feathers 用于使用从外部源更新的数据的实时站点吗?
Can I use Feathers for a real-time site that uses data updated from external sources?
在 the docs 中声明服务仅在服务方法修改数据时发出事件。在我见过的所有示例中都是这种情况,客户端从浏览器本身修改数据,并在其他客户端(如聊天网络应用程序)中自动更新。但是,如果我的数据在 Feathers 之外被外部修改怎么办?我能否使用 Feathers 以便在所有客户端中更新数据?
在我的特定情况下,我的数据实际上存储在 MongoDB 数据库中,该数据库会在外部自动更新。我希望我的 Web 应用程序使用 MongoDB Change Streams 来监听 MongoDB 数据库上的更改(我已经知道如何执行此操作),然后我希望 Feathers 负责向我的所有客户端发送更新实时。
在示例聊天应用程序中,这相当于拥有一个机器人,它也直接将消息写入 Feathers 之外的数据库,并且这些消息也应该实时广播给客户端。
我的用例适合 Feathers 吗?关于我应该如何处理它的任何提示?
已完成 feathers-rethinkdb
here. Something similar could be done for MongoDB but there are several challenges discussed in this issue.
的 ChangeFeed 观察
如果您的 MongoDB collection 仅在外部更新,您还可以像这样创建一个简单的直通服务:
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 观察器调用,并将自动负责通过其事件更新所有客户端。
在 the docs 中声明服务仅在服务方法修改数据时发出事件。在我见过的所有示例中都是这种情况,客户端从浏览器本身修改数据,并在其他客户端(如聊天网络应用程序)中自动更新。但是,如果我的数据在 Feathers 之外被外部修改怎么办?我能否使用 Feathers 以便在所有客户端中更新数据?
在我的特定情况下,我的数据实际上存储在 MongoDB 数据库中,该数据库会在外部自动更新。我希望我的 Web 应用程序使用 MongoDB Change Streams 来监听 MongoDB 数据库上的更改(我已经知道如何执行此操作),然后我希望 Feathers 负责向我的所有客户端发送更新实时。
在示例聊天应用程序中,这相当于拥有一个机器人,它也直接将消息写入 Feathers 之外的数据库,并且这些消息也应该实时广播给客户端。
我的用例适合 Feathers 吗?关于我应该如何处理它的任何提示?
已完成 feathers-rethinkdb
here. Something similar could be done for MongoDB but there are several challenges discussed in this issue.
如果您的 MongoDB collection 仅在外部更新,您还可以像这样创建一个简单的直通服务:
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 观察器调用,并将自动负责通过其事件更新所有客户端。