我的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