aboutsummaryrefslogtreecommitdiff
path: root/gossip.js
diff options
context:
space:
mode:
Diffstat (limited to 'gossip.js')
-rw-r--r--gossip.js108
1 files changed, 62 insertions, 46 deletions
diff --git a/gossip.js b/gossip.js
index 16b96a3..81c4d5e 100644
--- a/gossip.js
+++ b/gossip.js
@@ -1,55 +1,71 @@
-function sync (src, keys) {
- var server = 'ws://localhost:8080/'
+function sync (subs, keys) {
- var ws = new WebSocket(server + src)
+ var wsServers
- console.log('SYNCING')
+ localforage.getItem('servers').then(function (servers) {
+ if (servers) {
+ console.log(servers)
+ wsServers = servers
+ } else {
+ servers = ['ws://localhost:8080/', 'ws://evbogue.com/']
+ localforage.setItem('servers', servers)
+ console.log(servers)
+ wsServers = servers
+ }
+ }).then(function () {
+ subs.forEach(function (sub) {
+ wsServers.forEach(function (server) {
+ console.log('SYNCING WITH: ' + server + ' to fetch ' + sub)
+ var ws = new WebSocket(server + sub)
- bog(src).then(srclog => {
- if (srclog) {
- open(srclog[0]).then(msg => {
- var req = {
- src,
- seq: msg.seq,
- requester: keys.publicKey
- }
- ws.onopen = function () {
- ws.send(JSON.stringify(req))
- }
- ws.onmessage = function (message) {
- var serverMsg = JSON.parse(message.data)
- if (msg.seq === serverMsg.seq) {
- } else if (msg.seq > serverMsg.seq) {
- var diff = msg.seq - serverMsg.seq
- var sendlog = srclog.slice(0, diff)
- var send = {
- src,
- log: sendlog,
+ bog(sub).then(srclog => {
+ if (srclog) {
+ open(srclog[0]).then(msg => {
+ var req = {
+ src: sub,
+ seq: msg.seq,
+ requester: keys.publicKey
+ }
+ ws.onopen = function () {
+ ws.send(JSON.stringify(req))
+ }
+ ws.onmessage = function (message) {
+ var serverMsg = JSON.parse(message.data)
+ if (msg.seq === serverMsg.seq) {
+ } else if (msg.seq > serverMsg.seq) {
+ var diff = msg.seq - serverMsg.seq
+ var sendlog = srclog.slice(0, diff)
+ var send = {
+ src: sub,
+ log: sendlog,
+ requester: keys.publicKey
+ }
+ ws.send(JSON.stringify(send))
+ } else {
+ if (serverMsg.log) {
+ var newlog = serverMsg.log.concat(srclog)
+ localforage.setItem(sub, newlog).then(function () {regenerate()})
+ }
+ }
+ }
+ })
+ } else {
+ var req = {
+ src: sub,
+ seq: null,
requester: keys.publicKey
}
- ws.send(JSON.stringify(send))
- } else {
- if (serverMsg.log) {
- var newlog = serverMsg.log.concat(srclog)
- localforage.setItem(src, newlog).then(function () {regenerate()})
- }
+
+ ws.onopen = function () {
+ ws.send(JSON.stringify(req))
+ }
+ ws.onmessage = function (message) {
+ var serverMsg = JSON.parse(message.data)
+ localforage.setItem(sub, serverMsg.log).then(function () {regenerate()})
+ }
}
- }
+ })
})
- } else {
- var req = {
- src,
- seq: null,
- requester: keys.publicKey
- }
-
- ws.onopen = function () {
- ws.send(JSON.stringify(req))
- }
- ws.onmessage = function (message) {
- var serverMsg = JSON.parse(message.data)
- localforage.setItem(src, serverMsg.log).then(function () {regenerate()})
- }
- }
+ })
})
}