index.jsView |
---|
3 | 3 … | var muxrpc = require('muxrpc') |
4 | 4 … | var ms = require('multiserver') |
5 | 5 … | var mdns = require('bonjour')() |
6 | 6 … | |
| 7 … | +var sublevel = require('level-sublevel') |
| 8 … | +var memdb = sublevel(require('memdb')()) |
| 9 … | + |
| 10 … | +var hyperlog = require('hyperlog') |
| 11 … | +var ps = require('pull-stream') |
| 12 … | +var str2ps = require('stream-to-pull-stream') |
| 13 … | + |
7 | 14 … | var createApp = secretStack({ |
8 | | - appKey: new Buffer('00000000000000000000000000000000') |
| 15 … | + appKey: new Buffer('00000000000000000000000000000000'), |
| 16 … | + timers: { |
| 17 … | + inactivity: 0, |
| 18 … | + handshake: 0 |
| 19 … | + } |
9 | 20 … | }).use({ |
10 | 21 … | name: 'spot', |
11 | 22 … | manifest: { |
12 | | - greet: 'async' |
| 23 … | + greet: 'async', |
| 24 … | + createLog: 'duplex' |
13 | 25 … | }, |
14 | 26 … | permissions: { |
15 | | - anonymous: ['public.greet'] |
| 27 … | + anonymous: ['greet', 'createLog'] |
16 | 28 … | }, |
17 | 29 … | init: function(api, opts){ |
18 | 30 … | return { |
| 31 … | + 'createLog': function(name){ |
| 32 … | + var log = hyperlog(memdb.sublevel(name)) |
| 33 … | + var stream = str2ps.duplex(log.replicate({live:true}), function(err){ |
| 34 … | + |
| 35 … | + }) |
| 36 … | + setInterval(function(){ |
| 37 … | + log.add(null, Math.random().toString(2), function(err, msg){ |
| 38 … | + if(err) console.log(err) |
| 39 … | + }) |
| 40 … | + },1511) |
| 41 … | + return stream |
| 42 … | + }, |
19 | 43 … | 'greet': function(cb){ |
20 | 44 … | cb(null, 'GREETINGS') |
21 | 45 … | } |
22 | 46 … | } |
36 | 60 … | |
37 | 61 … | mdns.publish(record) |
38 | 62 … | |
39 | 63 … | mdns.find({type: 'spot'}, function(service){ |
40 | | - console.log(service) |
41 | 64 … | if(service.host === node.getAddress()) return |
42 | 65 … | else{ |
43 | 66 … | node.connect(service.host, function(err, rpc){ |
44 | | - console.log(err, rpc) |
| 67 … | + if(err) console.log(err) |
| 68 … | + |
45 | 69 … | rpc.spot.greet(function(err, greets){ |
46 | 70 … | console.log(greets) |
47 | 71 … | }) |
48 | | - }) |
| 72 … | + var log = hyperlog(memdb.sublevel()) |
| 73 … | + var local = str2ps.duplex(log.replicate({live : true}), function(err){ |
| 74 … | + |
| 75 … | + }) |
| 76 … | + var remote = rpc.spot.createLog() |
| 77 … | + var x |
| 78 … | + ps(local, remote, local) |
| 79 … | + |
| 80 … | + log.on('add', function(data){ |
| 81 … | + console.log(data.value.toString()) |
| 82 … | + }) |
| 83 … | + }) |
49 | 84 … | } |
50 | 85 … | }) |
51 | 86 … | |
52 | 87 … | console.log(node.getAddress()) |