소켓은 이벤트를 기반으로 작동한다. 서버측 소켓객체의 예약 이벤트 connect message disconnect reconnect ping join leave 클라이언트측 소켓객체의 예약 이벤트 connect connect_error connect_timeout reconnect, 등 앞에서 connect와 disconnect는 사용해봤다. 이번에는 message 이벤트를 사용해서 클라이언트에게 메시지를 보내본다. 앞서 작성한 app.js 파일에서 connect와 disconnect 사이에 다음과 같은 코드를 넣어준다. app.js io.on('connection', (socket) => { console.log('A user connected'); /////////////////////////////..
https://www.tutorialspoint.com/socket.io/index.htm Socket.IO Tutorial - Tutorialspoint Socket.IO Tutorial Socket.IO enables real-time bidirectional event-based communication. It works on every platform, browser or device, focusing equally on reliability and speed. Socket.IO is built on top of the WebSockets API (Client side) and Node.js. It www.tutorialspoint.com 여기를 참고했음 소켓.IO는 실시간 양방향 이벤트 기반 통..
페이지를 벗어날 때 어떤 이벤트를 실행시킬 때, navigator.sendBeacon() 메서드를 사용하면된다. window.addEventListener("unload", () => { let dummy = new FormData(); dummy.append('data','xxxxxxxxx'); window.navigator.sendBeacon("http://localhost:3000/chat/end",dummy); }, false); 이 메서드를 사용해서 페이지를 나가기 전에 서버로 작은 데이터를 보내주고 싶었다. window.navigator.sendBeacon("경로",데이터); 데이터를 폼객체에 담아서 보내줬다. 페이지를 나가면 샌드비콘은 router.post('/end',controller.e..
지금 내가 만든 게시판 DB의 테이블 구조는 위와 같다. type이 3이면 공지사항. 6이면 교수컬럼 , 8이면 faq. 이런식으로 구분하였다. 나중에 해당 게시판에서 게시판 리스트를 만들 때, DB에서 해당 게시판의 type값과 일치하는 type의 레코드만 불러올 수 있게 만들었다.. 하지만 각각의 게시판을 만들 때마다 type에 따라 다른 게시판 구조를 뿌려줘야해서, 코드가 지저분해졌다. 다음에 게시판을 만들 때에는 먼저 게시판 type에 관한 테이블을 먼저 만들고. 그 다음에 board 그 게시판 key 값을 join 해서 사용해야겠다. url을 아름답게 만드는 것도 필요한데 그럴 때. req.params 를 사용하고. params에 해당하는 값을 배열에 담아서 사용할 수 있다.
app.js const express = require('express'); const app = express(); const nunjuncks = require('nunjucks'); //npm install socket.io const socket = require('socket.io'); //npm install http const http = require('http');//소켓과 연결하기 위해서. http문서를 읽어오기 위해 const server = http.createServer(app); const io = socket(server); app.use(express.static('./node_modules/socket.io/client-dist')) app.set('view engine',..
클라이언트가 서버에게 id와 pw를 보냄. 서버가 id와pw를 DB에서 조회한 다음에 결과가 맞으면 토큰을 생성. 서버는 생성한 토큰을 클라이언트에게 응답을 보내줌. 클라이언트는 토큰을 쿠키에 저장. 이후 클라이언트는 매 요청마다 토큰을 함께 보냄. const express = require('express'); const crypto = require('crypto'); function createToken(){ let header = { "alg": "HS256", "typ": "JWT" } let payload = { "sub": "1234567890", "name": "John Doe", "user":"kkkk123", "iat": 1516239022 } let encodedHeader = Buf..
사용하고자하는 함수를 async 로 선언 let options = { method:'GET', headers:{ "Authorization":"KakaoAK [REST API KEY]" } } let url = `https://dapi.kakao.com/v2/local/geo/coord2address.json?x=${x}&y=${y}` let result = await fetch(url,options) let json = await result.json(); console.log(json.documents[0].address); 제공된 url 과 옵션을 설정하고. fetch. json으로 받아오면됨. 사용이 어렵지는 않지만.. 여기서 받아온 json을 어떻게 사용할지??? 어디에 사용할지?? 그 부분은 ..
server.js const express = require('express'); const app = express(); const nunjucks = require('nunjucks'); const axios = require('axios'); const qs = require('qs'); const session = require('express-session'); //nunjuck 설정 app.set('veiw engine','html'); nunjucks.configure('views',{ express:app, }) //session 설정 app.use(session({ secret:'123124', resave:false, secure:false, saveUninitialized:false,..
- Total
- Today
- Yesterday
- 최소공통조상
- 다이나밍프로그래밍
- 면접비
- 개발자면접
- BFS
- DB 생성
- 롱베케이션
- 그래프
- create databases;
- 서버개발
- 로드나인
- node.js
- MySQL
- MOD
- create db
- 면접질문
- 다이나믹프로그래밍
- 동적프로그래밍
- 은둔청년체험
- 서버점검
- 투포인터 연습
- 투포인터
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |