1
1
var ipc = require ( 'ipc' )
2
2
var clipboard = require ( 'clipboard' )
3
3
var shell = require ( 'shell' )
4
+ var mdns = require ( 'multicast-dns' ) ( )
4
5
5
6
var createPeerConnection = require ( './peer.js' )
6
7
var ui = require ( './ui.js' )
@@ -10,6 +11,24 @@ var peer
10
11
var peerConnection = createPeerConnection ( )
11
12
window . pc = peerConnection
12
13
14
+ mdns . on ( 'query' , function ( query ) {
15
+ if ( ! ui . inputs . copy . value ) return
16
+ query . questions . forEach ( function ( q ) {
17
+ if ( q . type === 'TXT' && q . name === 'screencat' ) {
18
+ mdns . respond ( [ { type : 'TXT' , name : 'screencat' , data : ui . inputs . copy . value } ] )
19
+ }
20
+ } )
21
+ } )
22
+
23
+ mdns . on ( 'response' , function ( res ) {
24
+ res . answers . forEach ( function ( a ) {
25
+ if ( a . type === 'TXT' && a . name === 'screencat' ) {
26
+ ui . buttons . mdns . innerText = a . data
27
+ ui . show ( ui . containers . mdns )
28
+ }
29
+ } )
30
+ } )
31
+
13
32
peerConnection . on ( 'connected' , function connected ( newPeer , remote ) {
14
33
peer = newPeer
15
34
@@ -63,18 +82,33 @@ ui.buttons.share.addEventListener('click', function (e) {
63
82
connect . host ( peerConnection , ui )
64
83
} )
65
84
85
+ ui . buttons . mdns . addEventListener ( 'click' , function ( e ) {
86
+ ui . inputs . paste . value = ui . buttons . mdns . innerText . trim ( )
87
+ ui . buttons . paste . click ( )
88
+ } )
89
+
66
90
ui . buttons . join . addEventListener ( 'click' , function ( e ) {
91
+ ui . hide ( ui . containers . mdns )
67
92
ui . show ( ui . containers . join )
68
93
ui . hide ( ui . containers . choose )
69
94
ui . show ( ui . buttons . back )
95
+
96
+ var interval = setInterval ( query , 1000 )
97
+ query ( )
98
+
70
99
connect . verifyUserRoom ( peerConnection , ui , function ( err , room , config ) {
100
+ clearInterval ( interval )
71
101
if ( err ) {
72
102
ui . inputs . paste . value = 'Error! ' + err . message
73
103
return
74
104
}
75
105
ui . inputs . paste . value = 'Waiting on other side...'
76
106
ipc . send ( 'create-window' , { config : config , room : room } )
77
107
} )
108
+
109
+ function query ( ) {
110
+ mdns . query ( [ { type : 'TXT' , name : 'screencat' } ] )
111
+ }
78
112
} )
79
113
80
114
ui . buttons . back . addEventListener ( 'click' , function ( e ) {
0 commit comments