-
Notifications
You must be signed in to change notification settings - Fork 1
/
webConsole.js
executable file
·107 lines (89 loc) · 2.93 KB
/
webConsole.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
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
101
102
103
104
105
106
107
#!/usr/bin/env node
/**
* UDPING WEBCONSOLE
*
*
*/
/**
* lib dependences
*/
const express = require("express");
const app = express();
//socketioのサーバーはテスト用
const server = require("http").createServer(app);
const io = require("socket.io")(server);
/**
* lib dependences
*/
const Udping = require("./index.js");
io.on(`connection`, function(client) {
console.log("[UDPING WEBCONSOLE]:socket.io connected");
//このclientが使うudpingclient達
const udpingClients = []
client.on('disconnect', function() {
console.log("[UDPING WEBCONSOLE]:socket.io disconnected");
for (udping of udpingClients) {
//作ったものは全部殺す
udping.client.stop();
}
});
client.on('init', function(webenv) {
/**
* webenv はwebから来たenv
*
* webenv = {
* host:サーバーのIP,
* port:サーバーのポート番号,
* wait:何ミリ秒おきに送るか タイムアウト時間はその二倍
* }
*/
let udping_env = {
//udping用のenv
mode: "client",
//mode: "server",
//サーバーのホストネーム IP
host: webenv.host,
port: webenv.port,
execTIme: new Date().getTime(),
savepath: `./result_udping/${Date.now()}_result.txt`,
//何ミリ秒おきに送るか タイムアウト時間はその二倍
wait: webenv.wait,
//タイムアウトやエラーが起きた時のcallback。初期設定はプリミティブ型のfalseを入れておく。
errCallback: function() {
console.error("[UDPING] TIMEOUT発生!! ");
let obj = {
status: false,
endTime: Date.now(),
RTT: "1000" //とりあえず仮に1000
}
client.emit("network", obj);
},
successCallback: function(obj) {
/**
* obj = {
* endTime : "",
* RTT : ""
* }
*/
obj.status = true;
client.emit("network", obj);
}
}
console.log("[UDPING WEBCONSOLE]:コンソールから開始命令を受けました。");
//udpingをスタート
udpingClients.push(new Udping(udping_env));
});
client.on("stop", () => {
console.log("[UDPING WEBCONSOLE]:stop command is received.");
for (udping of udpingClients) {
//作ったものは全部殺す
udping.client.stop();
}
});
//このクライアントをグローバル変数に入れておく。
socketioClient = client;
});
app.use(express.static('html'));
var port = 3012;
server.listen(port);
console.log(`[UDPING WEBCONSOLE]: webserver is listening.:${port}`)