1 | import _mdns from 'multicast-dns'
|
2 | import address from 'network-address'
|
3 |
|
4 | export default function(args) {
|
5 | let ip = address(args.interface)
|
6 | let mdns = _mdns({
|
7 | interface: ip
|
8 | })
|
9 | return mdns
|
10 | }
|
11 |
|
12 | export function onResponse(mdns, callback, timer) {
|
13 | let answers = []
|
14 | mdns.on('response', (res) => {
|
15 | let swarmAnswers = res.answers.reduce((found, answer) => {
|
16 | if (answer.name.endsWith('zombie-swarm')) found = res.answers
|
17 | return found
|
18 | }, null)
|
19 | if (swarmAnswers) answers = answers.concat(swarmAnswers)
|
20 | })
|
21 | setTimeout(() => {
|
22 | callback(answers)
|
23 | }, timer)
|
24 | }
|
25 |
|
26 | export function query(mdns) {
|
27 | mdns.query({
|
28 | questions: [{
|
29 | name : 'zombie-swarm',
|
30 | type : 'A'
|
31 | }]
|
32 | })
|
33 | }
|