본문 바로가기

JavaScript

Web Socket 채팅방 만들기_2

728x90

Web Socket 채팅방 만들기_2


2023.01.09 - [JavaScript] - Web Socket 채팅방 만들기_1


socket.io 이용

socket.io에서 제공하는 method 활용해

프로젝트에서 원하는 기능 만들 수 있음.

ws이랑의 차이점 비교해서 공부.

 

📌 install Library

 npm i socket.io

 

 

📄 socket.js

const { emit } = require('nodemon');
const SocketIO = require('socket.io');

module.exports = (server) => {
    const io = SocketIO(server, { path: '/socket.io' });

    io.on('connection', (socket) => {
        const req = socket.request;
        const ip = req.headers['x-forwarded-for'] || req.socket.remoteAddress;
        console.log('새로운 클라언트 접속', ip, socket.id, req.ip);
        socket.on('disconnet',() => {
            console.log('클라이언트 접속 해제', ip);
            clearInterval(socket.interval); // 연결 끊기면 3초마다 보내는것도 끓어줘야 메모리 문제 안생김.
        })
        socket.on('reply', (data) => {
            console.log(data);
        })
        socket.on('error', console.error);
        socket.interval = setInterval(() => {
            // send -> onmessage
            // emit('키', '값')
            // on('키', (값) => {})
            socket.emit('news', 'Hello Socket.IO');
        }, 3000);
    });
};

 

📄 index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>GIF 채팅방</title>
</head>
<body>
<div>F12를 눌러 console 탭과 network 탭을 확인하세요.</div>
<script src="/socket.io/socket.io.js"></script>
<script>
    const socket = io.connect("http://localhost:8005", {
        path: '/socket.io',
        transports: ['websocket'],
    });
    socket.on('news', (data) => {
        console.log(data);
        socket.emit('reply', 'Hello Node.JS');
    })
</script>
</body>
</html>

socket.io 이용

'JavaScript' 카테고리의 다른 글

Web Socket 채팅방 만들기_4  (0) 2023.01.12
Web Socket 채팅방 만들기_3  (0) 2023.01.10
Web Socket 채팅방 만들기_1  (0) 2023.01.09
회원가입 데이터 정규식 unit Test  (0) 2023.01.06
EJS공부 & 팀원 코드 이해하기2  (0) 2023.01.06