如何在GUN中为PUT请求添加属性



我的HTML页面中有以下代码

Gun.on('opt', function (ctx) {
if (ctx.once) {
return
}
this.to.next(ctx)
window.auth = ctx.opt.auth
ctx.on('get', function (msg) {
msg.auth = window.auth
this.to.next(msg)
})
ctx.on('put', function (msg) {
msg.put.auth = window.auth
this.to.next(msg)
})
})
var gun = Gun({
peers: ['http://localhost:8765/gun'],
auth: {
user: 'mroon',
password: 'titi'
}
})

在服务器上,我只是查看的请求

Gun.on('create', function(db) {
console.log('gun created')
this.to.next(db);
db.on('get', function(request) {
// this request contains the auth attribute from the client
this.to.next(request);
});
db.on('put', function(request) {
// this request does not contain the auth attribute from the client
this.to.next(request);
});
});

每次我用gun.get('someAttribute')查询图时,服务器上的请求都包含auth属性。

但是当调用gun.get('someAttribute').put({attribute: 'my new value'})时,服务器上的请求不包含auth属性。

如何将auth属性添加到put请求中,使所有对等方也能获得它?

@micha-roon你直接跳到了GUN的核心/内部线路细节,这不是最容易的事情,但我想我做的是你想要的:

(如果没有,请评论和我会更新(

这样做的目的是将DEBUG标志添加到GUN中的所有出站消息中,您可以更改此标志以添加其他元数据或信息

Gun.on('opt', function(root){
if(!root.once){
root.on('out', function(msg){
msg.DBG = msg.DBG || +new Date;
this.to.next(msg);
});
}
this.to.next(root);
})

还有另一个很好的参考:https://github.com/zrrrzzt/bullet-catcher

相关内容

  • 没有找到相关文章

最新更新