<aside>
๐ก npm install socket.io
</aside>
๊ฐ์
socketIO๋ webSocket์ ๊ธฐ๋ฐ์ผ๋ก ์ ์๋ ํจํค์ง ์ค ํ๋๋ก ์์ฃผ ๋ค์ํ ์ถ๊ฐ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
SocketIO๋ webSocket ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ง Engine.IO ์ ์ถ๊ฐ๊ธฐ๋ฅ์ ๋ํ ํ์ฅํ์ด๋ผ ๋ณผ ์ ์๋ค.
- ์๋ฒ์์ ์ฐ๊ฒฐ์ด ๋๊ฒจ๋(์๋ฒ๊ฐ ๊บผ์ก์์ด๋) ์ ํธ๊ฐ ๋ค์ ์กํ๋ค๋ฉด, ๊ธฐ์กด ํต์ ์ ์ง์ํ ์ ์๋ค.
- ํต์ ์ payload๋ ์ฌ๋ฌ ์ธ์(๋งค๊ฐ๋ณ์) ํ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ค.
- ์ด๋ ๋ฐ์ดํฐ๋ก์ ์ ๋ฌ๋๋ ์ธ์๋ String ๋ฟ๋ง ์๋๋ผ JS ๋ด ๋ชจ๋ ์๋ฃํ์ ์
๋ ฅ ๊ฐ๋ฅํ๋ค.
- payload์ ๋ง์ง๋ง ์ธ์๋ก๋ Call-Back ํจ์๋ฅผ ์ง์ ํ ์ ์๊ณ , ํด๋น ํจ์๋ Back-End์์ ์คํ ๋ช
๋ น์ด ๊ฐ๋ฅํ๋ค. ์ฌ์ง์ด๋ ๋งค๊ฐ๋ณ์ ์ ๋ฌ ๋ํ ๊ฐ๋ฅํ๋ค.
- ์ฃผ๋ก Back-End ๋จ์์ ์์
์ด ์๋ฃ ๋์์ ๋, ์๋ฆผ ํน์ ๋์ํ๋ ์ฉ๋๋ก ์ฌ์ฉํ๋ค.
- ์ค์ํ ์ ์ ์ด๋ Back-End์์ Front-End์์ ๋ฐ์ Call-Backํจ์๋ฅผ ์คํํ๋ฉด, ํจ์๋ Front-End์์ ๋์ํ๋ค. Back-End์์๋ ๊ทธ์ call-back ํจ์ ์คํ์ ๋ช
๋ น๊ณผ ๋งค๊ฐ๋ณ์ ์ ๋ฌ๋ง ํ๋ค.
socket.emit("message", { message : input.value }, 5, "hello", (parameta) => {
console.log(`The backend says: `, parameta);
});
socketIOServer.on("connection", socket => {
socket.on("enter_room", object, a, b, done) => {
console.log(object); // { message : input.value }
console.log(a); // 5
console.log(b); // hello
done("hello from the backend"); // ํด๋ผ์ด์ธํธ์ ์๋ callback ํจ์๋ฅผ ์คํ
});
})
๊ธฐ๋ฅ
Server ์ธก
Server API | Socket.IO
- socket.join(โroomnameโ); , socket.leave(โroomnameโ);
- socket.to(room)
- socket.on(โdisconnectingโ, ()=>{})
- server.~~~
Adapter