socket.io 서버 세팅
실시간 개인 채팅을 구현하기 위해 node.js의 express, socket.io를 배워보려 한다.
서버로 사용할 파일을 새로 만들어줬고 그곳엔 이렇게 구성을 해줬다 이후
본대로 server.js 기본 세팅을 해주고 시작했다.
import http from "http";
import SocketIo from "socket.io";
import express from "express";
const app = express();
app.set("view engine", "pug");
app.set("views", __dirname + "/views");
app.use("/public", express.static(__dirname + "/public"));
app.get("/", (req, res) => res.render("home"));
app.get("/*", (req, res) => res.redirect("/"));
const httpServer = http.createServer(app);
const wsServer = SocketIo(httpServer);
wsServer.on("connection", (socket) => {connection이 일어나면 실행하는 곳};
httpServer.listen(4500, handleListen);
프론트쪽은 react로 사용할 것이기 때문에 프론트 쪽은 import로 socketIo 선언을 해줬다.
기본적으로 socket.emit("abc", message)으로 보내고 socket.on("abc", message)으로 받는다 원하는 값을 보낼 수도 있고
함수를 보낼수도있다 함수는 백엔드에서 실행되지 않고 프론트로 와서 실행하게 된다(보안문제)
"abc"라는 이벤트를 만들어서 보내는 구조이다
socket.once로 받을 수도 있는데 이경우에는 값을 한번만 받고 싶을 때 사용한다