-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathio-old-v1.js
65 lines (51 loc) · 1.53 KB
/
io-old-v1.js
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
/**
* 远古初版
*
* 仅支持http
*/
var Server = require('http').createServer();
var IO = require('socket.io')(Server);
var _ = require('underscore');
var FMControlRooms = {/* token : [socket1,socket2] */};
var CtrlControlRooms = {/* token : [socket1,socket2] */};
IO.on('connect', function(socket){
//FM注册控制间
socket.on('fm/regCmd', function(token){
if (undefined === FMControlRooms[token]) {
FMControlRooms[token] = [socket];
} else {
FMControlRooms[token].push(socket);
}
});
//FM接口:主控端向被控端发送命令
socket.on('fm/sendCmd', function(token, type, value){
if (! token) return;
_.each(FMControlRooms[token], function(e){
e.emit('fm/acceptCmd', token, type, value);
});
});
//FM控制所有被控端的行为(不依赖ControlRooms)
socket.on('fm/sendCmdToAll', function(type, value){
IO.emit('fm/acceptCmd', null, type, value);
});
//CTRL注册控制间
socket.on('ctrl/regCmd', function(token){
if (undefined === CtrlControlRooms[token]) {
CtrlControlRooms[token] = [socket];
} else {
CtrlControlRooms[token].push(socket);
}
});
//CTRL接口:主控端向被控端发送命令
socket.on('ctrl/sendCmd', function(token, type, value){
if (! token) return;
_.each(CtrlControlRooms[token], function(e){
e.emit('ctrl/acceptCmd', token, type, value);
});
});
//CTRL控制所有被控端的行为(不依赖ControlRooms)
socket.on('ctrl/sendCmdToAll', function(type, value){
IO.emit('ctrl/acceptCmd', null, type, value);
});
});
IO.listen('3000');