본문으로 바로가기

node socket.io 사용하기

category Programming Bookmark/JavaScript 2020. 7. 7. 00:14

 

npm install --save socket.io
export DEBUG=socket.io*

 

var http = require('http');
var fs = require('fs');
var socketio = require('socket.io');

var server = http.createServer(function (req, res) {
    fs.readFile('./web/page.html', function (err, data) {
        res.writeHead(200, {'Content-Type' : 'text/html'});
        res.end(data);
    })
}).listen(52273, function () {
    console.log("Server Running at http://127.0.0.1:52273");
})

var io = socketio.listen(server);
io.sockets.on('connection', function (socket) {

    socket.on('rint', function(data) {
        //rint라는 이벤트를 연결 후 
        //클라이언트가 전송한 데이터를 출력한다.
        console.log("Client Send Data : ",data);

           //클라이언트에 smart 이벤트를 발생시킨다.
        //socket.emit('smart', data);

        //public
        //io.socket.emit('smart', data);

        //broadcast
        socket.broadcast.emit('smart', data);
    })
})

node socket 을 실행하면

 

  socket.io:server initializing namespace / +0ms
  socket.io-parser encoding packet {"type":0,"nsp":"/"} +0ms
  socket.io-parser encoded {"type":0,"nsp":"/"} as 0 +0ms
  socket.io:server creating engine.io instance with opts {"path":"/socket.io","initialPacket":["0"]} +1ms
  socket.io:server attaching client serving req handler +15ms
Server Running at http://127.0.0.1:52273
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="/socket.io/socket.io.js"></script>
    <script>

        window.onload = function () {
            var socket = io.connect();

            socket.on('smart',function (data) {
            //server에서 넘어온 smart 이벤트를 연결한다.
                alert(data);
            });

            document.getElementById('button').onclick = function () {
                var text = document.getElementById('text').value;
				//서버에 rint라는 이벤트로 소켓이벤트를 발생시킨다.
                socket.emit('rint', text);
            }
        }
    </script>
</head>
<body>
    <input type="text" id="text">
    <input type="button" id="button" value="echo">
</body>
</html>

npm install socket.io를 설치하게 되면 

해당경로에 설치가 되어있다.