Showing
2 changed files
with
52 additions
and
17 deletions
lib/request_api.js
0 → 100644
1 | +const secret_key = require('../keys/api_option').key; | ||
2 | +const requesting = require('request'); | ||
3 | + | ||
4 | +module.exports = (io) => { | ||
5 | + let info = {} | ||
6 | + setInterval(() => { | ||
7 | + requesting.get({ | ||
8 | + // api를 요청할 주소 -- 시크릿키,위도,경도 입력 | ||
9 | + url: `https://api2.sktelecom.com/weather/current/minutely?appKey=${secret_key}&lat=37.239795&lon=127.083240`, | ||
10 | + json: true | ||
11 | + }, | ||
12 | + //api에게 응답 받았을때 실행되는 callback func | ||
13 | + function (err, api_res, api_body) { | ||
14 | + if (err) throw err; | ||
15 | + // api의 대답이 있을경우 실행 | ||
16 | + if (api_res) { | ||
17 | + console.log(api_body); | ||
18 | + io.emit("new_info_in", info) // api 호출 정보 클라이언트에게 전송 | ||
19 | + } | ||
20 | + }); | ||
21 | + }, 60 * 1000); //1분마다 호출 | ||
22 | +} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | - | 1 | +const db = require('./db.js'); |
2 | - const db = require('./db.js'); | 2 | +const secret_key = require('../keys/api_option').key; |
3 | - const secret_key = require('../keys/api_option').key; | 3 | +const requesting = require('request'); |
4 | - const requesting = require('request'); | 4 | +const lat = "37.239795"; |
5 | - | 5 | +const lon = "127.083240"; |
6 | module.exports = (server, app) => { | 6 | module.exports = (server, app) => { |
7 | 7 | ||
8 | const io = require('socket.io', )(server, { | 8 | const io = require('socket.io', )(server, { |
9 | transports: ['websocket'] | 9 | transports: ['websocket'] |
10 | }); | 10 | }); |
11 | - const API_CALL= setInterval(() => { | 11 | + |
12 | + let info = {} | ||
13 | + const CALL = (when, what) => { | ||
12 | requesting.get({ | 14 | requesting.get({ |
13 | - // api를 요청할 주소 -- 시크릿키,위도,경도 입력 | 15 | + // api를 요청할 주소 -- 시크릿키,위도,경도 입력 |
14 | - url: `https://api2.sktelecom.com/weather/current/minutely?appKey=${secret_key}&lat=37.239795&lon=127.083240`, | 16 | + url: `https://api2.sktelecom.com/weather/${when}/${what}?appKey=${secret_key}&lat=${lat}&lon=${lon}`, |
15 | - json:true | 17 | + json: true |
16 | - }, | 18 | + }, |
17 | //api에게 응답 받았을때 실행되는 callback func | 19 | //api에게 응답 받았을때 실행되는 callback func |
18 | - function (err, api_res, api_body) { | 20 | + function (err, api_res, api_body) { |
19 | if (err) throw err; | 21 | if (err) throw err; |
20 | - // api의 대답이 있을경우 실행 | 22 | + // api의 대답이 있을경우 실행 |
21 | if (api_res) { | 23 | if (api_res) { |
22 | console.log(api_body); | 24 | console.log(api_body); |
23 | - return response.send("ok"); | ||
24 | } | 25 | } |
25 | }); | 26 | }); |
26 | - }, 60 * 1000); //1분마다 호출 | 27 | + } |
27 | 28 | ||
28 | io.on('connection', (socket) => { //웹 페이지 연결시 루프 동작 | 29 | io.on('connection', (socket) => { //웹 페이지 연결시 루프 동작 |
30 | + let API_CALL; | ||
31 | + | ||
32 | + | ||
33 | + socket.on("connection", () => { | ||
34 | + API_CALL = setInterval(() => { | ||
35 | + | ||
36 | + CALL("current","minutely"); //현재날씨 (분별) | ||
37 | + CALL("index","wct"); //체감온도 | ||
38 | + CALL("index","heat"); //열지수 | ||
39 | + CALL("index","th"); //불쾌지수 | ||
40 | + CALL("index","uv"); //자외선지수 | ||
41 | + | ||
42 | + }, 60 * 1000); //1분마다 호출 | ||
43 | + }); | ||
44 | + | ||
29 | socket.on('disconnecting', (reason) => { | 45 | socket.on('disconnecting', (reason) => { |
30 | clearInterval(API_CALL); //연결 종료시 해제 | 46 | clearInterval(API_CALL); //연결 종료시 해제 |
31 | }) | 47 | }) |
32 | - socket.on("connection", (roomnum) => { | ||
33 | - API_CALL(); | ||
34 | - }) | ||
35 | }) | 48 | }) |
36 | 49 | ||
37 | 50 | ... | ... |
-
Please register or login to post a comment