1
1
var socketIOURL = '//' + location . host + '/socket.io/socket.io.js' ;
2
2
3
- Slide . Control . add ( 'socket' , function ( S , broadcast ) {
3
+ Slide . Control . add ( 'socket' , function ( S , broadcast ) {
4
4
S . clientUID = 0 ;
5
5
6
6
function time2str ( time ) {
7
7
time = '00' + time ;
8
8
return time . substr ( - 2 ) ;
9
9
}
10
10
var showQrcode ;
11
- var qrcodeLink = function ( ) {
11
+ var qrcodeLink = function ( ) {
12
12
//按 q显示控制区域二维码
13
- document . addEventListener ( 'keydown' , function ( e ) {
13
+ document . addEventListener ( 'keydown' , function ( e ) {
14
14
if ( e . keyCode === 81 ) {
15
15
showQrcode ( e ) ;
16
16
}
@@ -23,7 +23,7 @@ Slide.Control.add('socket', function(S, broadcast) {
23
23
$body . appendChild ( $layer ) ;
24
24
var $container = document . getElementById ( 'container' ) ;
25
25
26
- showQrcode = function ( e ) {
26
+ showQrcode = function ( e ) {
27
27
if ( showQrcode . isShow ) {
28
28
// $container.style.display = 'block';
29
29
$layer . style . display = 'none' ;
@@ -34,16 +34,17 @@ Slide.Control.add('socket', function(S, broadcast) {
34
34
showQrcode . isShow = true ;
35
35
}
36
36
} ;
37
+ showQrcode ( ) ;
37
38
} ;
38
39
39
40
var webSocket ;
40
41
41
42
var Socket = {
42
43
host : '' ,
43
44
role : '' , //角色
44
- clientConnect : function ( ) {
45
+ clientConnect : function ( ) {
45
46
//角色是client,即被控制端,则连控制端服务器
46
- webSocket . on ( 'data from another client' , function ( data ) {
47
+ webSocket . on ( 'data from another client' , function ( data ) {
47
48
var action = data . action ;
48
49
switch ( action ) {
49
50
case 'from control order' :
@@ -59,20 +60,23 @@ Slide.Control.add('socket', function(S, broadcast) {
59
60
case 'from control key event' :
60
61
broadcast . fire ( action , data ) ;
61
62
break ;
63
+ case 'sync status' :
64
+ console . log ( 'sync status' , data ) ;
65
+ break ;
62
66
default :
63
67
broadcast . fire ( action , data . data ) ;
64
68
}
65
69
} ) ;
66
70
67
71
} ,
68
- controlConnect : function ( ) {
72
+ controlConnect : function ( ) {
69
73
webSocket . emit ( 'add client' , {
70
74
targetUid : this . clientUID
71
75
} ) ;
72
76
73
77
//控制端不在直接运行函数,而是变成发送socket给client
74
78
//注意参数,进行了json处理哦~
75
- Slide . proxyFn = function ( fnName , args ) {
79
+ Slide . proxyFn = function ( fnName , args ) {
76
80
args = JSON . stringify ( args ) ;
77
81
webSocket . emit ( 'repost data' , {
78
82
action : 'from control order' ,
@@ -82,7 +86,7 @@ Slide.Control.add('socket', function(S, broadcast) {
82
86
} ;
83
87
//角色是控制端,则连被控制端(client)服务器
84
88
85
- webSocket . on ( 'data from another client' , function ( data ) {
89
+ webSocket . on ( 'data from another client' , function ( data ) {
86
90
var action = data . action ;
87
91
if ( action . indexOf ( 'client' ) !== - 1 ) {
88
92
return ;
@@ -93,13 +97,13 @@ Slide.Control.add('socket', function(S, broadcast) {
93
97
} ) ;
94
98
95
99
} ,
96
- connect : function ( ) {
100
+ connect : function ( ) {
97
101
webSocket = io . connect ( location . host + '/ppt' ) ;
98
102
// console.log(io);
99
- webSocket . on ( 'UUID' , function ( uid ) {
103
+ webSocket . on ( 'UUID' , function ( uid ) {
100
104
webSocket . uid = uid ;
101
105
if ( Socket . role === 'client' ) {
102
- MixJS . loadJS ( '/js/qrcode.js' , function ( ) {
106
+ MixJS . loadJS ( '/js/qrcode.js' , function ( ) {
103
107
qrcodeLink ( ) ;
104
108
var url = location . href . split ( '#' ) [ 0 ] ;
105
109
url += ( ! ~ url . indexOf ( '?' ) ) ? '?' : '&' ;
@@ -113,44 +117,51 @@ Slide.Control.add('socket', function(S, broadcast) {
113
117
} ) ;
114
118
}
115
119
} ) ;
116
- webSocket . on ( 'system' , function ( data ) {
120
+ webSocket . on ( 'system' , function ( data ) {
117
121
// console.log(data);
118
122
if ( showQrcode && showQrcode . isShow ) {
119
123
showQrcode ( ) ;
120
124
}
125
+ if ( data . action === 'join' ) {
126
+ webSocket . emit ( 'repost data' , {
127
+ action : 'sync status' ,
128
+ id : S . current ,
129
+ item : S . buildItem
130
+ } )
131
+ }
121
132
} ) ;
122
133
123
134
this [ this . role + 'Connect' ] ( ) ;
124
135
} ,
125
- broadcast : function ( evtName , data ) {
136
+ broadcast : function ( evtName , data ) {
126
137
webSocket . emit ( 'repost data' , {
127
138
action : 'from control ' + evtName ,
128
139
data : data
129
140
} ) ;
130
141
} ,
131
- update : function ( id , direction ) {
142
+ update : function ( id , direction ) {
132
143
webSocket . emit ( 'repost data' , {
133
144
action : 'from ' + Socket . role + ' update' ,
134
145
id : id ,
135
146
direction : direction
136
147
} ) ;
137
148
} ,
138
- updateItem : function ( id , item , direction ) {
149
+ updateItem : function ( id , item , direction ) {
139
150
webSocket . emit ( 'repost data' , {
140
151
action : 'from ' + Socket . role + ' updateItem' ,
141
152
id : id ,
142
153
item : item ,
143
154
direction : direction
144
155
} ) ;
145
156
} ,
146
- keyEvent : function ( keyCode ) {
157
+ keyEvent : function ( keyCode ) {
147
158
webSocket . emit ( 'repost data' , {
148
159
action : 'from ' + Socket . role + ' key event' ,
149
160
keyCode : keyCode
150
161
} ) ;
151
162
} ,
152
163
153
- init : function ( args ) {
164
+ init : function ( args ) {
154
165
this . host = args . host || location . href ;
155
166
this . clientUID = args . clientId ;
156
167
// console.log(this.clientUID);
@@ -166,7 +177,7 @@ Slide.Control.add('socket', function(S, broadcast) {
166
177
var hour = 0 ,
167
178
sec = 0 ,
168
179
min = 0 ;
169
- timer2 = setInterval ( function ( ) {
180
+ timer2 = setInterval ( function ( ) {
170
181
sec ++ ;
171
182
if ( sec === 60 ) {
172
183
sec = 0 ;
@@ -183,9 +194,9 @@ Slide.Control.add('socket', function(S, broadcast) {
183
194
}
184
195
if ( args . shake ) {
185
196
//添加shake
186
- MixJS . loadJS ( Slide . dir + 'shake.js' , function ( ) {
197
+ MixJS . loadJS ( Slide . dir + 'shake.js' , function ( ) {
187
198
var lastTime = Date . now ( ) ;
188
- window . addEventListener ( 'shake' , function ( ) {
199
+ window . addEventListener ( 'shake' , function ( ) {
189
200
var now = Date . now ( ) ;
190
201
if ( now - lastTime > 3000 ) {
191
202
lastTime = now ;
@@ -200,7 +211,7 @@ Slide.Control.add('socket', function(S, broadcast) {
200
211
//已经存在
201
212
Socket . connect ( ) ;
202
213
} else {
203
- MixJS . loadJS ( socketIOURL , function ( ) {
214
+ MixJS . loadJS ( socketIOURL , function ( ) {
204
215
Socket . connect ( ) ;
205
216
} ) ;
206
217
}
0 commit comments