Я настроил простое приложение node.js в качестве подтверждения концепции, в котором я хочу, чтобы одноранговые узлы в локальной сети синхронизировали базу данных с помощью gun.
Я новичок в 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 разных компьютерах локальной сети, и это работает хорошо. База данных синхронизируется.
Если закрыть одно приложение, затем обновить базу данных в открытом приложении, а затем перезапустить второе приложение, второе приложение не синхронизируется с уже открытым приложением.
Есть ли способ синхронизации с обновленной БД при подключении нового пира?
Я надеюсь, что все имеет смысл. Пожалуйста, предложите, если это неправильный путь.