关于gunDB作为Cordova项目的独立数据库的具体问题

关于gunDB作为Cordova项目的独立数据库的具体问题,cordova,gun,Cordova,Gun,我刚刚了解了gunDB,这个概念似乎非常有趣,我想在开始进一步评估它之前了解更多 如果我想构建一个像教程一样的聊天应用程序,但要实现聊天室。有没有办法让客户只“订阅”某些聊天室,而避免转移其他聊天室的内容?如果不是所有数据都同步到所有客户机,那么这对持久性有何影响?我们是否需要运行一个特殊的客户端(即服务器?),以确保所有数据始终处于活动状态 对于同一个聊天室教程,如果我想订阅多个聊天室,我是否需要实例化多个Gun实例,每个实例都使用“对等”存储 在gunDB中应如何处理用户管理/密码等? 从

我刚刚了解了gunDB,这个概念似乎非常有趣,我想在开始进一步评估它之前了解更多

  • 如果我想构建一个像教程一样的聊天应用程序,但要实现聊天室。有没有办法让客户只“订阅”某些聊天室,而避免转移其他聊天室的内容?如果不是所有数据都同步到所有客户机,那么这对持久性有何影响?我们是否需要运行一个特殊的客户端(即服务器?),以确保所有数据始终处于活动状态
  • 对于同一个聊天室教程,如果我想订阅多个聊天室,我是否需要实例化多个Gun实例,每个实例都使用“对等”存储
  • 在gunDB中应如何处理用户管理/密码等? 从客户端向每个客户端发送用户数据库的副本很有趣 从复制的角度来看,但从安全性的角度来看,它似乎是相反的 直觉的
  • 有没有办法让gun只在某些情况下进行同步,例如WiFi连接可用时(想想Cordova)
  • 时间性的数据呢?在聊天应用程序中有什么方法吗 实例来告诉gunDB我只对未来的消息感兴趣 忽略在某个特定事件之前创建的任何内容 状态/时间戳(再次避免在服务器上传输大量数据) 昂贵的数据计划
  • 如何在gunDB中持久化到磁盘(可能是循环的)数据,以及 如果需要,是否将数据加载回数据库
  • 你们能让枪同时监视两把钥匙吗?例如,如果客户端需要显示聊天数据和待办事项列表(教程中的两个“键”),则假定两者都是“对等的”
  • 有关于如何使用自己的服务器进行存储的教程吗
  • 聊天室。因此,以加载聊天“表”的相同方式,您可以只拥有一个“聊天室”表。然后你可以只占你想要的房间。因为gun过去速度很快,所以它只会加载您订阅的数据。是的,客户端只能作为一个整体存储数据的子集,但这当然可能会影响您的复制/持久性级别。如果您对此感到担忧,那么运行一个“强大”的对等机(如服务器)是一个简单而完美的解决方案,因为它将备份所有内容。(不幸的是,由于WebRTC存在问题*,所以无论如何都必须运行中继服务器对等机。所以也可以将其用于存储)

  • 多个实例。您不需要为每个密钥实例化多个枪实例。事实上,这很糟糕。如果你不这样做就更好了。这是可能的,但是我们没有尽可能多地测试它,因为它并不理想

  • 安全/授权是一个非常敏感的话题,因此这在很大程度上取决于你想如何构建你的应用程序。如果你想要一个真正的P2P/分散设计,那么你需要做端到端的公钥/私钥。这样,即使其他用户可能正在帮助备份数据,他们也无法实际读取数据。然而,如果你想保持简单,像大多数应用程序一样构建你的应用程序。。。作为一种集中式服务,您可以将代理写入服务器。这是目前大多数人在构建应用程序时使用的相同技术,GUN也可以做同样的事情

  • WiFi/限速数据。不幸的是,这在JavaScript中无法直接使用,但听起来像是您在PhoneGap中提到的混合应用程序可以访问该信息。GUN被设计为在这样的场景中工作,因为它首先是离线的。但是如何与提供这些条件的外部API接口。。。这超出了我的经验,但可行

  • 时态数据/限制数据传输。请首先查看我的上述响应,这是可行的,但取决于外部API。但就限制查询而言,是的。答:我们很快将推出“词汇游标”,它将允许客户端限制响应,但是我们可能会逐步推出它的每个约束功能(因为这对社区来说并不是一个非常重要的优先事项,但您的参与将使其升级!),首先是精确的属性匹配(就像一个SQL select语句一样——事实上,我们将使用它为gun创建一个SQL查询扩展!),然后第二个是词法范围(选择以“a”到“c”开头的属性),这可以通过时间戳范围来完成,第三个是字节约束(一次最多只发送200字节)。 然而,一件显而易见的事情是,你可以自己手动完成(不是你想做的),你可以有一个房间表,然后房间是一个区块表,区块是一个消息表。房间也可能有一个“最后”区块,那么你可以通过执行
    gun.get('rooms').path('mychatroom').path来轻松访问你的聊天应用程序('last').map()

  • 循环引用。已经为您完成了,您想要多少循环引用就有多少-这是gun的优势所在,因为它的图形结构(循环引用、表格、文档、键/值等等)

  • 是的,枪可以同时监视多个键

  • 使用您自己的服务器进行存储…这可能意味着两件不同的事情。 如何运行您自己的gun服务器?有一个简单的包装器:。如果您想要使用Express之类的示例,这些示例也很简单。 如何使用当前部署的服务器的文件系统作为存储,因为您不想使用S3?您可以使用级别驱动程序。 答案是什么

  • *WebRTC需要STUN/ICE/信令服务器来引导WebRTC连接。Whic