분류 전체보기

https://socket.io/ Socket.io 이벤트 통신 특징은 클라이언트에서 발생하는 이벤트는 개발자가 임의로 설정할 수 있다는 점이다. 이벤트는 문자열로 지정하며 직접 이벤트를 발생시킬 수 있다. 전반적으로 노드 이벤트 핸들러 방식 따르고 있다고 보면 된다. // 해당 이벤트를 받고 콜백함수를 실행 socket.on('받을 이벤트 명', (msg) => { }) // 이벤트 명을 지정하고 메세지를 보낸다. socket.emit('전송할 이벤트 명', msg) 이런식으로 메세지 마다 고유한 이벤트를 등록해 구별해서 송수신하면, 채팅방에서 '귓속말' 기능처럼 특정 어느 사람한테만 메세지를 송신한다던지 ..등 다양한 통신 기능을 구현할 수 있다. Socket IO 송수신 메소드 송수신 메소드는 다음..
방 만들어서 실시간 시간 공유 클라이언트 Create Join Leave index.js const WebSocket = require('ws'); var DB = require('./db.js'); var CREATE = require('./create.js'); var db = new DB(); const wss = new WebSocket.Server({ port: 8005 }); const maxClients = 5; let rooms = {}; let joinuserTemp = 1; db.LogMsg(); wss.on('connection', function connection(ws) { ws.user = genKey(5); var create = new CREATE(); console.log(..
간단한 메세지 데이터 전송 소스 클라이언트 코드 서버 코드 const http = require('http'); const fs = require('fs'); const ws = new require('ws'); const wss = new ws.Server({noServer: true}); const clients = new Set(); function accept(req, res) { if (req.url == '/ws' && req.headers.upgrade && req.headers.upgrade.toLowerCase() == 'websocket' && req.headers.connection.match(/\\bupgrade\\b/i)) { wss.handleUpgrade(req, req.soc..
웹 소켄 커넥션을 만들려면 new Websocket 을 호출하면 되는데, 이때 ws라는 특수 프로토콜을 사용합니다. let socket = new WebSocket("ws://localhost"); ws 말고 wss라는 프로토콜도 있는데, 두 프로토콜의 관계는 HTTP와 HTTPS의 관계와 유사합니다. 소켓이 정상적으로 생성되면 네 개의 이벤트를 사용할 수 있습니다. open - 커넥션이 이루어 졌을 때 이벤트 발생 message - 데이터를 수신하였을 때 이벤트 발생 error - 에러가 생겼을 때 이벤트 발생 close - 커넥션이 종료되었을 때 발생 웹소켓 데모 소스 웹소켓 핸드셰이크 let socket = new WebSocket(url); 함수를 호출하여 소켓을 생성하면 즉시 연결이 시작 데이터..
웹소켓이란 실시간 통신을 위해서 웹브라우저에서 소켓의 형태를 지원하는 형태의 프로토콜 이다. 실시간 통신의 종류 Polling 특징 Stateless 와 Connectionless 특징을 가지고 있다. 요청이 있어야만 응답을 할 수 있다. 단점 HTTP 오버헤드가 증가 Long Polling 특징 Polling 하나의 생명주기 시간을 늘린다. 이벤트가 발생할때까지 대기한다. HTTP 요청 빈도 감소 WebSocket 특징 HTTP 통신이 아닌 TCP 에서 동작을 한다. HTTP와 달리 StatePul 하다. Polling처럼 주기적으로 요청받을 필요가 없다. 양방향 통신이 가능하다. Server Sent Event(SSE) 특징 서버에서 클라이언트로 단방향 데이터를 전달할 수 있는 HTML5 표준 기술 ..
사실, 객관(Facts) : 이번 일주일 동안 있었던 일, 내가 한 일 2022-12-30 ~ 2023-01-06 : 노드 첫 프로젝트 2023-01-06 : cs 특강 - 메모리 느낌, 주관(Feelings) : 나의 감정적인 반응, 느낌 노드로 하는 첫 프로젝트여서 어렵고 힘들었다 배운 것(Findings) : 그 상황으로부터 내가 배운 것, 얻은 것 노드에서 CRUD 중 RU 를 익혔다 미래(Future) : 배운 것을 미래에는 어떻게 적용할 지 3계층 및 테스트 코드
저번 프로젝트때도 역시 데이터베이스를 통합해서 진행하는 도중에 vscode 의 확장중 MySQL - https://marketplace.visualstudio.com/items?itemName=formulahendry.vscode-mysql 를 써서 내 개인 ubuntu 컴퓨터의 MYSQL 서버를 연결해서 사용하려고하면 생기는 오류 가 발생한다. https://velog.io/@jubby/MySQL-%EC%84%A4%EC%B9%98-3306-Port-%EC%98%A4%EB%A5%98-vs-code-%EC%97%B0%EB%8F%99-%EC%98%A4%EB%A5%98-%ED%95%B4%EA%B2%B0 의 내용을 통해서 해결했다 를 통해 기존 인증 암호화 플러그인을 mysql_native_password 방식..
오늘은 새로운 프론트엔드까지 만들고 기능을 구현할 시간이 없어서 sa의 와이어프레임에 만들었던것과는 다르게 한페이지에서 구현을 했다.. 다음처럼 배송물 상태 및 배송완료 되었을때 완료 리스트에 표시되게 구현하였다
어제 했던 시퀄라이즈에서 foreing key를 안했었어서 아래의 명령어를 통해 마이그레이션에 foreing key 세팅을 할수있는 파일을 만들었다. npx sequelize migration:generate --name fk-setting 생성한 뒤 각 테이블의 모델파일에서 association 구성과 참조하는 컬럼을 생성했다. models.laundry.hasOne(models.review, { foreignKey: "laundry_id" }); models.review.belongsTo(models.laundry, { foreignKey: "laundry_id" });
db migration 함 npx sequelize model:generate --name laundry --attributes id:integer,state:string,category:string,phone:string,address:string,img:string,memo:string npx sequelize model:generate --name review --attributes id:integer,star:integer,content:string npx sequelize model:generate --name user --attributes id:integer,nickname:string,password:string,email:string,point:bigint npx sequelize mod..
프로젝트에서 내가 맡은 세탁물 조회쪽이라서 간단하게 프론트를 만들고 데이터를 표시해주는 정도까지 했다.
사실, 객관(Facts) : 이번 일주일 동안 있었던 일, 내가 한 일 2022-12-26 ~ 2022-12-29 : 노드 심화 강의 2022-12-30 ~ : 노드 심화 프로젝트 시작 느낌, 주관(Feelings) : 나의 감정적인 반응, 느낌 노드 첫 프로젝트가 시작되었다.. 아직 다 안봤는데 벌써 시작이라니.. 배운 것(Findings) : 그 상황으로부터 내가 배운 것, 얻은 것 - 미래(Future) : 배운 것을 미래에는 어떻게 적용할 지 -
고랑E
'분류 전체보기' 카테고리의 글 목록 (14 Page)