2023.01.29 TIL

복치·2024년 1월 29일

Today' list

  1. socket io 공부

  1. Socket.io란?
    Socket.io는 Node.js를 이용해 웹 어플리케이션에서 실시간 통신을 구현하기 위한 라이브러리입니다. Socket.io는 웹소켓(WebSocket)을 기반으로 동작하며, 웹소켓이 지원되지 않는 브라우저에서는 폴링(Polling) 방식을 사용하여 실시간 통신을 구현합니다.
  1. Socket.io 설치
    Socket.io를 사용하기 위해서는 먼저 Node.js와 npm이 설치되어 있어야 합니다. 설치가 완료되었다면, 다음 명령어를 실행하여 Socket.io를 설치합니다.
npm install socket.io
  1. Socket.io 서버 구현하기
    Socket.io를 이용해 서버를 구현하려면, 다음과 같은 코드를 작성합니다.
const app = require('express')();
const http = require('http').createServer(app);
const io = require('socket.io')(http);

io.on('connection', (socket) => {
  console.log('a user connected');

  socket.on('disconnect', () => {
    console.log('user disconnected');
  });
});
http.listen(3000, () => {
  console.log('listening on *:3000');
});

위 코드에서는 먼저 express 모듈을 사용하여 애플리케이션을 생성하고, http 모듈을 사용하여 서버를 생성합니다. 그리고 Socket.io 모듈을 이용하여 서버와 클라이언트 간의 실시간 통신을 구현할 수 있는 객체를 생성합니다.

io.on('connection', ...) 구문은 클라이언트가 서버와 연결되면 실행됩니다. 이 구문에서는 클라이언트와 연결되었을 때 수행할 코드를 작성합니다. 위 예제 코드에서는 클라이언트가 연결되면 'a user connected' 메시지를 출력합니다.

ocket.on('disconnect', ...) 구문은 클라이언트와 연결이 끊겼을 때 실행됩니다. 이 구문에서는 클라이언트와 연결이 끊겼을 때 수행할 코드를 작성합니다. 위 예제 코드에서는 클라이언트와 연결이 끊겼을 때 'user disconnected' 메시지를 출력합니다.

마지막으로,http.listen(...) 구문에서는 서버를 실행하는 포트를 지정합니다. 위 예제 코드에서는 포트 번호 3000을 사용합니다.

  1. Socket.io 클라이언트 구현하기
    Socket.io를 이용해 클라이언트를 구현하려면, 다음과 같은 코드를 작성합니다.

<!DOCTYPE html>
<html>
<head>
  <title>Socket.io Example</title>
  <script src="/socket.io/socket.io.js"></script>
  <script>
    const socket = io();

    socket.on('connect', () => {
      console.log('connected to server');
    });

    socket.on('disconnect', () => {
      console.log('disconnected from server');
    });
  </script>
</head>
<body>
  <h1>Socket.io Example</h1>
</body>
</html>

위 코드에서는 먼저 Socket.io 클라이언트 라이브러리를 가져옵니다. 그리고 Socket.io를 이용하여 서버와 클라이언트 간의 실시간 통신을 구현할 수 있는 객체를 생성합니다.

socket.on('connect', ...) 구문은 클라이언트가 서버와 연결되면 실행됩니다. 이 구문에서는 클라이언트와 연결되었을 때 수행할 코드를 작성합니다. 위 예제 코드에서는 클라이언트가 연결되면 'connected to server' 메시지를 출력합니다.

profile
돌연사 하기전에 하고야 만다

0개의 댓글