Socket.IO
란 node.js 기반으로 만들어진 기술로 자체 스팩으로 만들어진 socket.io 서버를 만들고 socket.io 클라이언트와 브라우저에 구애받지 않고 실시간 통신이 가능해진다.
Socket.IO는 일반적으로 위 모델 중 long-polling 방식을 사용한다.
Web Socket과 달리 Socket.io는 표준 기술이 아니고 Node.js 모듈이다.
emit을 통해 신호를 보내고, on을 통해 신호를 받는다.
const express = require('express');
const app = express();
const http = require('http');
const server = http.createServer(app);
const { Server } = require("socket.io");
const io = new Server(server); // 해당 서버를 소켓 서버임을 설정
// 클라이언트가 최초 접속 시 보여지는 화면
app.get('/', function (req, res) {
res.sendFile(__dirname + '/index.html');
});
// 서버 실행
http.listen(3000, function () {
console.log('server listening on port : 3000');
});
// connection을 수립하고, callback 인자로 socket을 받음
io.on('connection', function (socket) {
// 연결이 성공했을 경우 실행됨
socket.on('disconnect', function () {
// 클라이언트의 연결이 끊어졌을 경우 실행됨
});
)}
<script src="/socket.io/socket.io.js"></script>
<script>
const socket = io();
socket.on("서버에서 받을 신호", (데이터) => {
// 특정 신호를 받으면 실행할 코드
})
socket.emit("서버로 보낼 신호", 데이터);
</script>