Commit 13be5ee9906beb5d8c2a24db46c68ef183c78d3a
poll for new local peers and update interface on discovery
Matt McKegg committed on 11/1/2016, 10:55:27 AMParent: e7dc89b429e48057d0f7dbb658a2c9072fafd580
Files changed
modules/obs-local.js | changed |
modules/obs-local.js | |||
---|---|---|---|
@@ -2,17 +2,29 @@ | |||
2 | 2 … | var plugs = require('patchbay/plugs') | |
3 | 3 … | var sbot_gossip_peers = plugs.first(exports.sbot_gossip_peers = []) | |
4 | 4 … | var ip = require('ip') | |
5 | 5 … | ||
6 … | +var cache = null | ||
7 … | + | ||
6 | 8 … | exports.obs_local = function () { | |
7 | - var result = MutantSet([], {nextTick: true}) | ||
8 | - sbot_gossip_peers((err, peers) => { | ||
9 | - if (err) throw console.log(err) | ||
10 | - peers.filter((peer) => { | ||
11 | - if (ip.isPrivate(peer.host) && (peer.source === 'local')) { | ||
12 | - console.log(peer) | ||
13 | - result.add(peer.key) | ||
14 | - } | ||
15 | - }) | ||
16 | - }) | ||
17 | - return result | ||
9 … | + if (cache) { | ||
10 … | + return cache | ||
11 … | + } else { | ||
12 … | + var result = MutantSet([], {nextTick: true}) | ||
13 … | + // todo: make this clean up on unlisten | ||
14 … | + | ||
15 … | + setTimeout(() => { | ||
16 … | + sbot_gossip_peers((err, peers) => { | ||
17 … | + if (err) throw console.log(err) | ||
18 … | + peers.filter((peer) => { | ||
19 … | + if (ip.isPrivate(peer.host) && (peer.source === 'local')) { | ||
20 … | + console.log(peer) | ||
21 … | + result.add(peer.key) | ||
22 … | + } | ||
23 … | + }) | ||
24 … | + }) | ||
25 … | + }, 5000) | ||
26 … | + | ||
27 … | + cache = result | ||
28 … | + return result | ||
29 … | + } | ||
18 | 30 … | } |
Built with git-ssb-web