Toggle navigation
Toggle navigation
This project
Loading...
Sign in
김윤지
/
Probability Death
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
김주희
2019-06-06 00:52:23 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
b6188238c2b07f42fb23b7ef1e98c3717a63f544
b6188238
1 parent
4b57f0af
socketio.js db 하나로 통합
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
23 additions
and
14 deletions
lib/socketio.js
lib/socketio.js
View file @
b618823
const
db
=
require
(
'./db.js'
);
const
db_traffic
=
require
(
'./db_traffic.js'
);
//const db = require('./db.js');
//const db_traffic = require('./db_traffic.js');
const
db_total
=
require
(
'./db_total.js'
);
//DB 합침
const
secret_key
=
require
(
'../keys/api_option'
).
key
;
const
secret_key_traffic
=
require
(
'../keys/api_option_traffic'
).
key
;
...
...
@@ -26,14 +27,14 @@ module.exports = (server, app) => {
let
sending_to_client_info
=
{};
let
client_send
=
{};
let
client_name
=
""
;
let
client_birth
;
let
client_birth
;
let
Destiny
;
let
sql
;
let
info
=
{}
//;?
let
Current_TrafficAcc
=
{};
let
sql_traffic
;
//let DeathNum_index = {}; //사
상
자
//
let sql_traffic;
//let DeathNum_index = {}; //사
망
자
//let M_HurtNum_index = {}; //중상자
//let L_HurtNum_index = {}; //경상자
//let LocalName_index = {}; //지역 이름
...
...
@@ -56,12 +57,14 @@ module.exports = (server, app) => {
// api의 response이 있을경우 promise resolve 호출
if
(
api_res
)
{
console
.
log
(
"calling weather api"
);
console
.
log
(
"calling weather
& trafffic
api"
);
resolve
(
api_body
);
}
});
})
}
//API 호출_Traffic
const
req_API_traffic
=
(
cate1
,
cate2
)
=>
{
//async await 사용하기 위하여 promise 사용
...
...
@@ -121,7 +124,7 @@ module.exports = (server, app) => {
typhoon
:
Current_Weather
.
common
.
stormYn
,
//현재 태풍
time
:
Current_Weather
.
weather
.
minutely
[
0
].
timeObservation
,
// 불러온 시각
death_prob
:
0
,
//확률
death_number
:
Current_TrafficAcc
.
items
.
item
[
0
].
caslt_cnt
,
//사상자 수
death_number
:
Current_TrafficAcc
.
items
.
item
[
0
].
dth_dnv_cnt
,
//사망자 수
midhurt_number
:
Current_TrafficAcc
.
items
.
item
[
0
].
se_dnv_cnt
,
//중상자 수
lighthurt_number
:
Current_TrafficAcc
.
items
.
item
[
0
].
sl_dnv_cnt
,
//경상자 수
occur_number
:
Current_TrafficAcc
.
items
.
item
[
0
].
occrrnc_cnt
//발생건수
...
...
@@ -143,7 +146,8 @@ module.exports = (server, app) => {
//죽을 확률 계산(내맘대로 커스텀)
info
.
death_prob
=
(
(
info
.
heat
/
50
)
+
(
Math
.
abs
(
info
.
sensible_temperature
-
15
)
/
10
)
+
(
info
.
discomport
/
10
)
+
(
info
.
UV
/
10
)
+
info
.
windspd
*
1
+
(
info
.
rain
/
10
)
+
(
Math
.
abs
(
info
.
current_temperature
-
15
)
/
10
)
+
info
.
windspd
*
1
+
(
info
.
rain
/
10
)
+
(
Math
.
abs
(
info
.
current_temperature
-
15
)
/
10
)
+
(
info
.
death_number
/
50
)
+
(
info
.
midhurt_number
/
80
)
+
(
info
.
lighthurt_number
/
90
)
+
(
info
.
occur_number
/
90
)
);
//이벤트 기반으로 일정 시간 간격으로 클라이언트에게 보낼 정보, 홈페이지 그래프에 나타날 정보
...
...
@@ -164,15 +168,15 @@ module.exports = (server, app) => {
// 심장이 크게 뛰며 확률이 증가하거나 감소 할 수 있음
Math
.
random
()
*
2
>=
1
?
client_send
.
death
+=
getRandom_add_prob
(
0
,
5
)
:
client_send
.
death
-=
getRandom_add_prob
(
0
,
5
)
;
Math
.
random
()
*
2
>=
1
?
client_send
.
death
+=
getRandom_add_prob
(
0
,
5
)
:
client_send
.
death
-=
getRandom_add_prob
(
0
,
5
)
;
//운명의 장난으로 죽을 확률이 증가하거나 감소함
const
rand
=
Math
.
floor
(
Math
.
random
()
*
6
)
//생년월일 중 한자리 뽑음
Destiny
=
client_birth
.
charAt
(
rand
)
/
3
;
//명시적 형 변환
if
(
Destiny
==
0
)
Destiny
=
1
;
//사용자 잘못 입력했을때 예외처리
Math
.
random
()
*
2
>=
1
?
client_send
.
death
+=
Destiny
:
client_send
.
death
-=
Destiny
;
Destiny
=
client_birth
.
charAt
(
rand
)
/
3
;
//명시적 형 변환
if
(
Destiny
==
0
)
Destiny
=
1
;
//사용자 잘못 입력했을때 예외처리
Math
.
random
()
*
2
>=
1
?
client_send
.
death
+=
Destiny
:
client_send
.
death
-=
Destiny
;
//만약 날이 너무 안좋아서 확률이 100을 넘긴다면 100으로 예외처리
...
...
@@ -180,13 +184,13 @@ module.exports = (server, app) => {
client_send
.
death
=
100
;
}
console
.
log
(
"client send data \n"
,
client_send
)
console
.
log
(
"client send data \n"
,
client_send
)
app
.
get
(
"socket"
).
emit
(
"weather_and_traffic_Info_minutely_send_to_client"
,
client_send
);
// 클라이언트에게 정보 담아서 이벤트 발산
console
.
log
(
"emit"
);
//db에 저장
sql
=
"INSERT INTO weatherInfo (time,wind,temperature,rain,prob) VALUES (?,?,?,?,?)"
;
/*
sql = "INSERT INTO weatherInfo (time,wind,temperature,rain,prob) VALUES (?,?,?,?,?)";
db.query(sql, [client_send.time, client_send.wind, client_send.temperature, client_send.rain, client_send.death], (err, result) => {
if (err) console.log(err);
})
...
...
@@ -194,7 +198,12 @@ module.exports = (server, app) => {
sql_traffic = "INSERT INTO trafficInfo (tdeath,mhurt,lhurt,occurence,prob) VALUES (?,?,?,?,?)";
db_traffic.query(sql_traffic, [client_send.trafficdeath, client_send.mhurt, client_send.lhurt, client_send.occurence, client_send.death], (err, result) => {
if (err) console.log(err);
})*/
sql
=
"INSERT INTO apisInfo (time,wind,temperature,rain,prob,tdeath,mhurt,lhurt,occurence) VALUES (?,?,?,?,?,?,?,?,?)"
;
db_total
.
query
(
sql
,
[
client_send
.
time
,
client_send
.
wind
,
client_send
.
temperature
,
client_send
.
rain
,
client_send
.
death
,
client_send
.
trafficdeath
,
client_send
.
mhurt
,
client_send
.
lhurt
,
client_send
.
occurence
],
(
err
,
result
)
=>
{
if
(
err
)
console
.
log
(
err
);
})
}
catch
(
err
)
{
//promise err or try err catch
console
.
log
(
"================Error Occured !!================\n"
,
err
);
}
...
...
Please
register
or
login
to post a comment