프로젝트

일반

사용자정보

통계
| 개정판:

root / HServer / 00.Server / 00.Program / modules / agent_module.js

이력 | 보기 | 이력해설 | 다운로드 (3.91 KB)

1
var dbCenter = require('../db_modules/dbCenter');
2

    
3
var mySocket = require('../socket.io_modules/mySocket');
4

    
5
var collectionName = 'agent';
6

    
7
var control = {};
8

    
9

    
10

    
11
// agent 가 연결이 되었을 경우
12
control.connect = function( data, callback ){
13
    console.log('[agent_module] agent 접속');
14
    var jsonValue = JSON.parse(data);
15

    
16
    dbCenter.findClient(collectionName, jsonValue.mac, function(err, result){
17
        if(err){
18
            console.log('[agent find] err : ' + err.toString());
19
            return;
20
        } else {
21
            if(result){
22
                var sendData = JSON.stringify(result);
23
                console.log('[agent find] 결과를 찾았습니다. : ' + sendData);
24
                
25
                var changeData = result;
26
                changeData.connect = true;
27

    
28

    
29
                dbCenter.modifiy(collectionName, result, changeData,function(err, result){
30
                    if(err){
31
                        console.log(err.toString());
32
                    } else {
33
                        if(result){
34
                            callback('agent_connect', sendData);    // 연결된 콜백함수
35
                        } else {
36
                            console.log('결과가 없습니다.');
37
                        }
38
                    }
39
                });
40
            } else {
41
                console.log('[agent find] 결과가 없습니다. 새로운 것입니다.');
42
                jsonValue.connect = true;
43
                dbCenter.add(collectionName, jsonValue, function(err){
44
                    if(err){
45
                        console.log('[agent add] err : ' + err.toString());
46
                        return;
47
                    } else {
48
                        console.log('[agent add] 성공');
49

    
50
                        callback('agnet_new', jsonValue);    // 새로운 콜백함수
51
                    }
52
                });
53
            }
54
        }
55
    });
56
};
57

    
58
control.disconnect = function( mac, callback){
59
    dbCenter.findClient(collectionName, mac, function(err, result){
60
        if(err){
61
            console.log('[agent find] err : ' + err.toString());
62
            return;
63
        } else {
64
            if(result){
65
                console.log('[agent find] 결과를 찾았습니다.');
66
                result.connect = 'disconnect';
67
                callback(null, result);
68
            } else {
69
                console.log('[agent find] 결과가 없습니다.');
70
            }
71
        }
72
    });
73
};
74

    
75
control.stateChange = function(mac, state, callback){
76
    dbCenter.findClient(collectionName, mac, function(err, result){
77
        if( err){
78
            return;
79
        } else {
80
            if(result){
81
                var changeData = result;
82
                changeData.state = state;
83

    
84
                dbCenter.modifiy(collectionName, result, changeData, function(err, result){
85
                    if(err){
86
                        callback(err, null);
87
                        return;
88
                    } else {
89
                        if(result){
90
                            callback(null, result);
91
                        }
92
                    }
93
                });
94
            }
95
        }
96
    });
97
}
98

    
99

    
100
control.getOne = function( mac, callback ){
101
    dbCenter.findClient(collectionName, mac, function(err, result){
102
        if(err){
103

    
104
        } else {
105
            if( result ){
106

    
107
            } else {
108

    
109
            }
110
        }
111
    });
112
};
113

    
114
control.FindAgentForContentName = function(contentsName, callback){
115
    dbCenter.findAll(collectionName, function(err, result){
116
        if(err==null&&result!=null){
117
            var resultArray = [];
118

    
119
            for(var i = 0; i< result.length; i++){
120
                if(result[i].contents == contentsName){
121
                    resultArray.push(result[i]);
122
                }
123
            }
124
            callback(null, resultArray);
125
        }
126
    });
127
};
128

    
129

    
130

    
131

    
132
module.exports = control;