모듈 설치하기
npm init -y
npm i socket.io -S
npm i express -S
express 앱 생성, http 모듈로 서버 생성
app.js
const express = require("express");
const { Server } = require("http");
const socketIo = require("socket.io");
const app = express();
const http = Server(app); // express app을 http 서버로 감싸기
const io = socketIo(http); // http 객체를 Socket.io 모듈에 넘겨 소켓 핸들러 생성
소켓 연결 이벤트 핸들링
io.on("connection", (sock) => {
console.log("새로운 소켓이 연결됐어요!");
sock.on("disconnect", () => {
console.log("소켓 연결이 끊어졌어요");
});
});
http 객체로 서버 열기
http.listen(8080, () => {
console.log("서버가 요청을 받을 준비가 됐어요");
});
원래는 app.listen으로 서버를 열었는데 여기서는 http.listen으로 교체했다.(8080포트)
이벤트 핸들링 : 기존과 동일하게 emit 매개변수로 작동
sock.emit("eventServerHandling", {
name:"sw",
date: new Date().toISOString(),
});
소켓이 연결 될 때 이벤트로 name, date 데이터를 보내준다.
new Date() 함수 : 현재 시각을 생성해준다.
아래와 같이 다른 객체를 데이터로 보내줄 수 있다.
sock.on("BUY", (data) => {
const emitData = {
...data,
date: new Date().toISOString(),
}
io.emit("BUY_GOODS", emitData);
});
'내일배움캠프 노드 4기 > Today I Learned' 카테고리의 다른 글
Node.js 파일 업로드 하기 - multer , <form enctype=" "> (0) | 2023.01.02 |
---|---|
ERD 작성하기 - 관계 (0) | 2022.12.30 |
socket.io (0) | 2022.12.29 |
sequelize DB에 table 만들기 (0) | 2022.12.28 |
ConnectionError [SequelizeConnectionError]: Unknown database '//DB명' (0) | 2022.12.28 |