단순 코드 기록/Node

Node_소켓통신 적용

일일일코_장민기 2024. 3. 27. 12:47
728x90

 

index2.js
var socket = io();

//최초 접속시 실행할 함수
socket.on("connect", function(){
    var input = document.getElementById("test");
    input.value="접속됨";
});

//전송함수
function send(){

    //입력된 데이터를 가져옴
    var message = document.getElementById("test").value;
    document.getElementById("test").value="";

    //소켓에 send이벤트와 데이터 전달
    socket.emit("send", {msg: message}); //사용자 정의 send 이벤트
}

 

index_2.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel = "stylesheet" href="/css/index.css">

    <!-- app_2.js 추가부분 -->
    <script src="/socket.io/socket.io.js"></script> <!-- 순서 바뀌면 실행되지 않음 -->
    <script src="/js/index2.js"></script>           <!-- socket.io를 사용해야 함 -->


</head>
<body>

    <div id="main">
       <input type="text" id="test">
       
       <!-- /static/js.index.js send()호출 -->
       <button onclick="send()">전송</button>
    </div>
   
   
</body>
</html>

 

app_2
const express = require("express");
const socket = require("socket.io");
const http = require("http");

//Node.js 기본 내장 모듈 로딩****************
const fs = require("fs")    //FileSystem 모듈
//******************************************

const app = express();
const server = http.createServer(app);
const io = socket(server);

app.use("/css", express.static("./static/css"));
app.use("/js", express.static("./static/js"));


app.get("/", function(req, res){
    console.log("유저가 /로 접속함");
    fs.readFile("./static/index_2.html", function(error, data){
        if(error){
            res.send("에러 발생")
        } else {
            res.writeHead(200, {"Content-Type" : "text/html"});
            res.write(data);
            res.end();
        }
    });
});

io.sockets.on("connection", function(socket){
    //connection이라는 이벤트가 발생할 경우
    console.log("유저 접속됨");
    socket.on("send", function(data){
        console.log("전달된 메세지: ", data.msg);
    });

    socket.on("disconnect", function(){
        console.log("접속 종료");
    });
});

//서버 8081포트로 listen
server.listen(8081, function(){
    console.log("서버 실행중...");
});