我有一个应用程序,我想在其中实现聊天/消息服务。我必须将CouchDB与PouchDB一起使用。我的问题是每个用户都应该能够向任何人发送消息,但只有消息的接收者才能读取此消息,但是在 CouchDB 中没有办法限制每个用户阅读对话文档。每个用户的数据库也不是解决方案,因为每个人都无法写入相应的数据库。
CouchDB 和 PouchDB 没有每个文档的访问控制,只有每个数据库。对此的一种解决方案是:
- 驻留在服务器上的已发送消息的单个数据库。PouchDB 客户端通过执行客户端>服务器的单向复制来写入(但不读取(此数据库。 服务器
- 端每个用户的数据库,具有服务器>客户端单向复制。这就是 PouchDB 客户端接收消息的方式。
- 在服务器端,编写一些自定义脚本,根据收件人将文档从中央数据库移动到每用户数据库
这与我关于公交车站显示的博客文章中概述的方法类似,后者使用无服务器更改源侦听器来路由消息。这并不理想,但是一种解决方案。