OWL ITS + 탐지시스템(인터넷 진흥원)
이민희
2022-01-13 4545664bbece1b1b185945376b344b1660669a53
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
88
89
90
91
92
93
94
95
96
97
98
99
100
var Stomp = require("./stomp");
var net   = require('net');
 
var wrapTCP = function(port, host) {
  // node.js net.Socket;
  var socket;
 
  // Web Socket-like object
  var ws = {
    url: 'tcp:// ' + host + ':' + port,
    send: function(d) {
      socket.write(d);
    },
    close: function() {
      socket.end();
    }
  };
 
  socket = net.connect(port, host, function(e) {
    ws.onopen();
  });
  socket.on('error', function(e) {
    // handler can be null if the ws is properly closed
    if (ws.onclose) {
      ws.onclose(e);
    }
  });
  socket.on('close', function(e) {
    // handler can be null if the ws is properly closed
    if (ws.onclose) {
      ws.onclose();
    }
  });
  socket.on('data', function(data) {
    // wrap the data in an event object
    var event = {
      'data': data.toString()
    };
    ws.onmessage(event);
  });
  
  return ws;
};
 
var wrapWS = function(url) {
  var WebSocketClient = require('websocket').client;
 
  var connection;
 
  var ws = {
    url: url,
    send : function(d) {
      connection.sendUTF(d);
    },
    close : function() {
      connection.close();
    }
  };
  
  var socket = new WebSocketClient();
  socket.on('connect', function(conn) {
      connection = conn;
      ws.onopen();
      connection.on('error', function(error) {
        if (ws.onclose) {
          ws.onclose(error);
        }
      });
      connection.on('close', function() {
        if (ws.onclose) {
          ws.onclose();
        }
      });
      connection.on('message', function(message) {
          if (message.type === 'utf8') {
            // wrap the data in an event object
            var event = {
              'data': message.utf8Data
            };
            ws.onmessage(event);
          }
      });
  });
 
  socket.connect(url);
  return ws;
}
 
var overTCP = function(host, port) {
  var socket = wrapTCP(port, host);
  return Stomp.Stomp.over(socket);
}
 
var overWS= function(url) {
  var socket = wrapWS(url);
  return Stomp.Stomp.over(socket);
}
 
exports.overTCP = overTCP;
exports.overWS = overWS;