我已经设置了一个简单的 node.js 应用程序作为概念证明,我希望本地网络上的对等点使用 gun 同步数据库。
我是新手,所以我不确定我是否正确执行此操作,但这是我的代码:
var Gun = require('gun')
const address = require('network-address')
const hashToPort = require('hash-to-port')
// get username from arg eg. node index myname
const username = process.argv[2]
// create GUN server on it's own port
var server = require('http').createServer().listen(hashToPort(username))
var gun = Gun({web: server})
// listen for input from the console
process.stdin.on('data', (data) => {
gun.get('hello').put({ word: data.toString(), user: username })
});
// Output input update
gun.get('hello').on(function(data, key) {
console.log(data.user + ' said: ' + data.word.toString())
})
这个想法是对等点可以退出并重新连接并同步到最新版本的数据库。
我在 2 台不同的本地网络机器上运行该应用程序,它运行良好。数据库正在同步。
如果我关闭一个应用程序,然后在打开的应用程序上更新数据库,然后重新启动第二个应用程序,则第二个应用程序不会与已经打开的应用程序同步。
当新的对等点连接时,有没有办法与更新的数据库同步?
我希望一切都说得通。请建议这是否是错误的方法。