본문 바로가기
Nodejs

[ Nodejs ] socket.io 사용해서 서버와 데이터 주고받기

by teamnova 2023. 4. 1.

안녕하세요 오늘은  socket.io 를 사용해서 서버와 데이터를 주고받아보려고 합니다.

 

서버와 클라이언트가 연결된 후 

클라이언트가 server_hi 라는 이름의 이벤트를 서버에게 전송하고

server_hi 이벤트를 받은 서버가 client_hello 라는 이벤트를 클라이언트에게 보내는 예제입니다.

 

 

먼저 모듈을 설치해주세요

npm install socket.io

 

 

서버 코드입니다

index.js

const express = require("express");
const http = require("http");
const app = express();
const server = http.Server(app);

const PORT = 5000;

server.listen(PORT, () => {

    console.log(`Server running on http://localhost:5000`);

    app.get('/', (req, res) => {
    	res.sendFile('test.html', { root: (파일위치) });
     });
 });
    

var io = require('socket.io')(server);


io.sockets.on('connection', function(socket) {

	console.log('socket connection');
	
    socket.on("server_hi", data => {
    	console.log("server_hi");
        
        console.log("get Data : "+data.data);
        
        const data2 = {
        	data : "hello"
        }
        io.sockets.to(socket.id).emit("client_hello", data2);

    });

})

 

클라이언트 코드

test.html

<html>

<head>
    <meta charset="utf-8" />
    <title>test</title>
</head>

<body>

    
    <script src="https://cdn.socket.io/4.5.4/socket.io.min.js" integrity="sha384-/KNQL8Nu5gCHLqwqfQjA689Hhoqgi2S84SNUxC3roTe4EhJ9AfLkp8QiQcU8AMzI" crossorigin="anonymous"></script>
    <script>
      const socket = io.connect();
      socket.on('connect', function() {
          socket.emit("server_hi", {
              data : "hi"
            }); 
      });
      socket.on('client_hello', function(data) {
          console.log("client_hello")
          console.log("Data : "+data.data)
      });
      
      
      
    </script>
    
    
</body>

</html>