gpt4 book ai didi

node.js - 如何跨 Web 和 native 应用程序将数据结构单向同步到多个客户端?

转载 作者:搜寻专家 更新时间:2023-11-01 00:48:35 25 4
gpt4 key购买 nike

我们需要在后端服务器、Web 客户端、 native iOS 应用程序和 native Android 应用程序之间共享一个通用数据结构。后端服务器是用 NodeJS 编写的,并在底层使用 Postgres 数据库。

我考虑过使用 Firebase 实时数据库,因为它将解决后端可以写入 Firebase 数据库并且所有客户端都可以使用该数据库的所有需求。

我的问题是,是否有一种开箱即用的开源替代方案比成熟的 Firebase 实时数据库更符合我们的要求,后者将提供许多我们不需要或不想要的功能。

--- 这里是假设和要求----

  1. 后端充当主控,因此对数据结构的更改只能由后端执行。

  2. 数据结构可以假定为简单的键值对列表、简单的对象数组或完整的树结构(如 json 对象)。我们可以使用所有解决方案。

  3. 数据结构的大小非常有限,比如小于 100KB。

  4. 服务器上数据结构的任何更新都应该近乎实时地传播到所有订阅了该数据结构的客户端。

  5. 如果客户端离线一段时间,它应该在连接后立即更新。

  6. 每种类型的客户端都必须有一种健壮的方式来订阅数据结构中的变化。因此,一旦本地版本的数据结构被更新,同时应该通知它发生了什么变化。

  7. 如果可能,客户端在收到有关数据结构更新的通知时,应该知道更新了“数据结构的哪一部分”。

  8. 我们希望编写尽可能少的代码,并且更喜欢具有用于 NodeJS 的服务器库和用于 Web、 native iOS 和 native Android 的客户端库的解决方案。

  9. native 应用程序无法请求推送通知的权限。

  10. 它必须在任何支持 websockets 或类似的现代浏览器上工作。

最佳答案

有趣的问题。我不知道有任何开源系统可以做到这一点,我相信 Firebase 本身就是从这样一个系统演变而来的,称为 Parse。现在,我可以告诉你的是,Firebase 是一个不错的选择,也许你不应该这么快就放弃它:

  1. Firestore 是新的数据库系统。实时数据库将被淘汰。而且 firestore 在功能上更胜一筹。

  2. Firebase 可以免费启动,并且达到一个非常高的水平,然后是相当实惠的。

  3. 这是管理好的。我怎么强调都不为过。保护或维护系统不是您的问题,如果您推出自己的解决方案,那将是您的问题。

  4. 它会自动扩展,也就是说,规划容量、购买、滚动或同步额外的服务器,或者维护内存或磁盘都不是您的问题。这一切都为您服务。

  5. “您可能不需要的功能”可以节省大量时间和成本,例如不同提供商的托管身份验证、移动推送通知、分析、文件存储等。

  6. 它具有 Web 和移动客户端,因此您可以开发所需的客户端并共享相同的后端。

也就是说,我可以问一下你为什么问这个吗?我非常熟悉 Firebase,我可能可以帮助您完成部署。

干杯

关于node.js - 如何跨 Web 和 native 应用程序将数据结构单向同步到多个客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55401342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com