-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtest-2.html
87 lines (73 loc) · 3.05 KB
/
test-2.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<html>
<head></head>
<body>
<p>web-control.io/test.html</p>
<p>Example test: http://cms.acggeek.com/%E6%B5%8B%E8%AF%95web-control.io%E6%8E%A7%E5%88%B6</p>
<p>Just forward this url: <a id="controller" href="javascript:;" target="_blank"></a></p>
<script>
function loadToLoad(cb) {
var e = document.createElement('script');
e.setAttribute('type', 'text/javascript');
e.setAttribute('src', '//res.miku.us/res/js/loadScript.js');
document.body.appendChild(e);
var iv = setInterval(function(){
if ('Ltrelib' in window && 'loadScript' in window.Ltrelib) {
clearInterval(iv);
if (typeof cb == 'function') {
cb.call(this, window.Ltrelib.loadScript);
}
}
}, 100);
}
function controlable(opt) {
loadToLoad(function(loadScript){
loadScript('//cdn.bootcss.com/socket.io/1.3.5/socket.io.min.js', function(){
var socket = io.connect('http://io.yooo.moe:3000');
var localToken = opt.tokenGetter(socket);
socket.emit('ctrl/regCmd', localToken);
socket.on('ctrl/acceptCmd', function(rToken, type, value){
if (localToken == rToken) {
opt.onAccept(socket, localToken, type, value);
}
});
opt.initializer(socket, localToken);
opt.emitor(function(type, value){
socket.emit('ctrl/sendCmd', localToken, type, value);
});
}, function(win){ return 'io' in win; });
});
}
controlable({
tokenGetter: function(socket){
var token = (location.href.match(/\#.*[?&]?showControlView\=([^&]+)/)||[,-1])[1];
if (-1 === token) {
token = + new Date();
}
return token;
},
emitor: function(send){
send('shell2', 'This is an value from controller!');//主控端发指令
},
onAccept: function(socket, token, type, value) { //被控端接收指令
alert(value);
switch (type) {
case 'shell1':
alert(1);
break;
case 'shell2':
alert(2);
break;
default:
alert('default');
}
},
initializer: function(socket, token) { //用于生成主控端访问方式
var c = document.getElementById('controller');
var h = location.href + '#showControlView=' + token;
c.innerText = h;
c.href = h;
}
});
</script>
</body>
</html>