问题标签 [gun]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
765 浏览

gun - 如何将存储在 GUN.js 浏览器对等体上的数据限制为仅订阅的数据?

我是 GUN 的新手,我正在从事的项目看起来很有希望。我无法实现的一件事是将浏览器对等体上的数据限制为仅使用 on() 请求或订阅的数据。以下示例是我非常简单的测试设置:我有两个不同的“对话”,每个对话都由一个不同的数据节点表示。一个浏览器获取并放入“蓝色”数据节点,另一个浏览器获取并放入“红色”节点。两个浏览器都同步到一个服务器对等点。我希望服务器对等方存储所有数据的副本,并且每个浏览器只存储它订阅的数据。使用版本 0.9.2。

在 Browser1 上,我运行以下命令:

在 Browser2 上,我运行以下命令:

服务器节点运行这个:

然后,我使用每个浏览器对等点的控制台将一些数据发布到它订阅的节点。我希望每个浏览器的本地存储应该只包含它订阅的节点的数据,而服务器的 data.json 应该包含两个节点的数据。

我看到的是服务器正在按预期存储所有数据,但在查看本地存储时,我看到浏览器也在存储所有内容,甚至是他们从未请求过的数据。这是预期的行为,还是我错过了什么?我认为浏览器对等点只存储他们订阅的数据。虽然服务器对等方复制数据以在发生故障时保持冗余是有意义的,但我不希望我的应用程序客户端本身存储无数他们不参与的对话。

谢谢您的帮助!

0 投票
1 回答
70 浏览

gun - 没有对等点的浏览器客户端正在从其他有对等点的浏览器客户端提取更新的数据

我参考了以下链接在 hello.js 中设置枪服务器实例和在 index.html 中设置浏览器客户端。

https://[github.com/amark/gun/wiki/getting-started-(v0.3.x)] 在创建 hello.js 时,我排除了以下代码

使用以下代码行

在合并 hello.js 的片段时,我在 localhost 中将服务器实例注册为 index.html 中的对等点。首先,在启动基于 hello.js 的枪服务器实例后,我在 2 个浏览器窗口中调用了 index.html。我可以观察到更新从每个浏览器发出的都反映在两个窗口中。现在我创建了 index.html 的副本并删除了对等点。对等点数组现在是空的。但是当我打开这个修改后的浏览器客户端时,我能够看到来自服务器在控制台的本地主机中设置。这怎么可能?没有对等点的浏览器客户端如何从已注册对等点的其他客户端获取数据。

提前感谢测试

0 投票
2 回答
88 浏览

gun - 当前的`map()`在做什么?

( Gun.version 0.9.6 )

给定以下数据结构

我想同时开/关灯。 gun.get('lights').val(cb)确实给了我 {1:{...},2:{...},3:{...}} 并且gun.get('lights').path('1.state.on').put(false);效果很好。

我认为这样做gun.get('lights').map().path('1.state.on').put(false)会“映射”所有灯光,但它只会改变第一盏灯。

问题:如何打开/关闭所有灯?

0 投票
1 回答
236 浏览

gun - Peers 中的现有数据未同步

我尝试在两台机器上设置 gun.js 服务器代码,并在每台机器上设置 2 个浏览器客户端,其中包含将两台机器注册为对等点的代码。两台机器的服务器代码都为 2 个不同的节点放置语句

场景 1 启动了两台服务器:现有数据未同步

场景 2 统计两个服务器和两个客户端:现有数据未同步

场景 3 从每个浏览器控制台放置一个新的数据项(不同的)。新放置的数据在两台机器上同步。

请指导解决此问题。

谢谢第一次尝试

0 投票
1 回答
61 浏览

gun - 如何检查 Gun 无序列表是否为空?

鉴于以下情况,如何确定机器列表是否为空以添加机器?

如何检查机器列表是否为空?

0 投票
1 回答
52 浏览

gun - 如何删除 Gun 无序列表的成员

给定以下枪支无序列表,如何从机器列表中删除机器?

0 投票
2 回答
1452 浏览

angularjs - How can a number of angular clients communicate between themselves even when they lose connection to a central server?

So the scenario is like this... I have a number of different users in an organization. Each has his own session of an AngularJS app running in their browser. They share an internet connection over a local LAN. enter image description here

I need them to continue working together (data, notifications, ... etc) even when they lose internet i.e. server side communication.

What is the best architecture for solving this?

0 投票
2 回答
316 浏览

gun - 你如何在 GUN 中进行分页?

你如何做类似 gun.get({startkey, endkey}) 的事情?

以前:https ://github.com/amark/gun/issues/479

0 投票
1 回答
399 浏览

gun - 您将如何使用 GunDB 构建 p2p twitter 克隆?

GunDB应该支持点对点数据访问,所以我试图更好地理解它是如何工作的。如果我要构建一个 twitter 克隆,如果我希望每个用户将自己的推文存储在自己的服务器上,高级架构会是什么样子?

0 投票
1 回答
80 浏览

gun - 使用 SEA 的 Gun v0.9.92:未登录时无法放置嵌套数据

我正在与 SEA 一起使用(嗯……实际上是在实验)。与身份验证相关的所有内容都运行良好...但是...

如果我没有登录,我不能再在 Gun 中放任何东西。

user.get('mydata').get('level1').get('level2').put('yup')作品

user.leave()

gun.get('mydata').get('level1').get('level2').put('yup')

返回“NO!Soul 未在 'level1' 签名。”

这是故意的吗?因为如果我想将数据放入非用户绑定的枪中怎么办?