./categories/back-end
Socket.IO 실시간 통신
socket.io 설치
yarn add socket.io # 또는
npm i socket.io
npm i socket.io-client # 클라이언트용
서버
import http from "http";
import express from "express";
import io from "socket.io";
const app = express();
const httpServer = http.createServer(app).listen(3000, () => {
console.log("포트 3000에 연결되었습니다.");
});
const socketServer = io(httpServer);
socketServer.on("connection", socket => {
console.log("connect client by Socket.io");
socket.on("first Request", req => {
console.log(req);
socket.emit("first Respond", { data: "firstRespond" });
});
});
클라이언트
import io from "socket.io-client";
const socketClient = io("http://서버IP:포트번호");
socketClient.on("connect", () => console.log("connection server"));
socketClient.emit("first Request", { data: "first Request" });
socketClient.on("first Respond", req => console.log(req));
서버에서 응답하는 3가지 방법
socket.emit("이벤트이름", data); // 현재 연결된 클라이언트에게
socket.broadcast.emit("이벤트이름", data); // 나를 제외한 다른 클라이언트에게
socketServer.sockets().emit("이벤트이름", data); // 특정 소켓 클라이언트에게
- HTTP는 요청-응답 후 연결이 끊김. 지속 통신이 필요하면 Socket.io 사용
- room, get/set 등 추가 기능은 별도
관련 링크: https://hoony-gunputer.tistory.com/226
./comments