Socket.io
Socket.io
Node.js Server๋ฅผ ์ด์ฉํ๋ฉด ์ค์๊ฐ์ผ๋ก ์ ๋ฐ์ดํธ๋ฐ์ ์ค์๊ฐ์ฑํ , ์๋ฆผ์ ๊ตฌํํ ์ ์๋ ๋ชจ๋์ด ์๋ค.
express๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ด๋ฌํ ๊ธฐ๋ฅ์ ์ง์ํ๋ Socket.io๋ผ๋ ๋ชจ๋์ด ์๋ค.
Socket.io์ ์ค์น
cmd / ํฐ๋ฏธ๋์ npm์ ์ฌ์ฉํ์ฌ ์ฝ๊ฒ ๋ชจ๋์ ์ค์น ํ ์ ์๋ค.
npm install socket.io
์ค์น ์๋ฃ์ package.json ํ์ผ์ socket.io๊ฐ ์ค์น ๋๊ฒ์ ํ์ธ ํ ์ ์๋ค.
{
"name": "socket-chat-example",
"version": "0.0.1",
"description": "my first socket.io app",
"dependencies": {
"express": "^4.17.1",
"socket.io": "^4.1.2",
}
}
Socket.io์๋ฒ
์๋์ ๊ฐ์ด express์๋ฒ๋ฅผ์ด์ฉํ์ฌ socket.io๋ฅผ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
socket.io๋ ๋ณดํธ์ ์ผ๋ก .emit()๊ณผ .on()์ ํตํด ์ฌ์ฉํ๋ค.
server.js
const express = require("express");
const app = express();
const server = require("http").Server(app);
const io = require("socket.io")(server);
// ์๋ฒ ๋ผ์ฐํฐ
app.get("/", (req, res) => {
res.send("main.html");
});
// socket.io ์ ์
io.on("connection", (socket) => {
console.log("์ ์");
socket.on("ํด๋ผ์ด์ธํธ ์์ฒญ", (msg)=>{
console.log(msg);
// ๋ณด๋ด๋ ๋ฐ์ดํฐ ์ฝ์ ์ถ๋ ฅ
io.emit("์๋ฒ์ ์๋ต", msg);
})
socket.on('disconnect', ()=>{
console.log("์ข
๋ฃ")
})
});
server.listen(3000);
main.html
<body>
<script src="/socket.io/socket.io.js"></script>
<script>
let socket = io();
socket.emit("ํด๋ผ์ด์ธํธ ์์ฒญ", "๋ณด๋ด๋ ๋ฐ์ดํฐ");
socket.on("์๋ฒ์ ์๋ต", (msg)=>{
console.log(msg);
// ๋ณด๋ด๋ ๋ฐ์ดํฐ ์ฝ์ ์ถ๋ ฅ
})
</script>
</body>
socket.emit()
socket.emit("eventName"[, โฆargs][, ack])
- eventName (String)
- args
- ack (Function)
- Returns true
๋ฌธ์์ด ์ด๋ฆ์ผ๋ก ์๋ณ๋๋ ์์ผ์ ์ด๋ฒคํธ๋ฅผ ๋ด ๋ณด๋
๋๋ค. ๋ค๋ฅธ ๋งค๊ฐ ๋ณ์๋ฅผ ํฌํจ ํ ์ ์์ต๋๋ค.
๋ชจ๋ ์ง๋ ฌํ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ์ง์๋ฉ๋๋ค.
socket.on()
socket.on("eventName", listener)
eventName ์ด๋ผ๋ ์ด๋ฒคํธ์ ๋ํ listeners ๋ฐฐ์ด์ ๋์ listener ํจ์๋ฅผ ์ถ๊ฐํฉ๋๋ค.
Leave a comment