๐ฌNodeJs WebSocketS ์ฑํ ์ฑ
ํ๋ฐํธ์๋์ ๋ฐฑ์๋์์ WebSocket API๋ฅผ ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
์น์์ผ ํด๋ผ์ด์ธํธ
WebSocket ๊ฐ์ฒด๋ ์๋ฒ์ ๋ํ WebSocket ์ฐ๊ฒฐ์ ๋ง๋ค๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํ API๋ฅผ ์ ๊ณตํฉ๋๋ค.
๋ฟ๋ง ์๋๋ผ ์ฐ๊ฒฐ์์ ๋ฐ์ดํฐ๋ฅผ ์ก์์ ํฉ๋๋ค.
ํด๋ผ์ด์ธํธ ์ธก์์ ๋จผ์ WebSocket ์ฐ๊ฒฐ์ ์์ฑํด์ผ ํฉ๋๋ค.
const socket = new WebSocket('ws://localhost:8080');
์ด๋ฒคํธ
addEventListener()๋ฅผ ์ฌ์ฉํ์ฌ ์ธ ๊ฐ์ ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค.
WebSocket๊ณผ์ ์ฐ๊ฒฐ์ด ์ด๋ฆฌ๋ฉด ์์๋จ,
WebSocket๊ณผ์ ์ฐ๊ฒฐ์ด ๋ซํ ๋ ์์๋จ,
WebSocket์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์์ ํ๋ฉด ์์๋ฉ๋๋ค.
socket.addEventListener('open', function (event) {
socket.send('Hello Server!');
});
socket.addEventListener('message', function (event) {
console.log('Message from server ', event.data);
});
์๋ฒ ์ธก์ WebSocket
๋ฐฑ์๋์์๋ WebSocket ๊ธฐ์ ์ ์ฌ์ฉํ ์๋ ์๊ณ NodeJs์์๋ ์ค์นํ ์ ์์ต๋๋ค.
ws library
๊ตฌํํ๊ธฐ๊ฐ ๋งค์ฐ ์ฝ์ต๋๋ค. ์ค์นํ๋ ค๋ฉด ์ด ๋ช ๋ น์ ์ํํ์ญ์์ค.
npm i ws
WebSocket ์๋ฒ 'wss' ๊ฐ์ ธ์ค๊ธฐ ๋ฐ ์์ฑ
import WebSocket, {WebSocketServer} from 'ws';
const wss = new WebSocketServer({port:8080});
์ฐ๊ฒฐ์ ์์ ํ๊ณ ๋ฌธ์์ด ๋๋ ๊ฐ์ฒด ํ์ ๋ฉ์์ง๋ฅผ ๋ณด๋ ๋๋ค.
wss.on('connection', (ws, req)=>{
ws.send(JSON.stringify({time: datetime, message:`๐ฌ Welcome from the Server ๐.`}));
});
์ด ๋น๋์ค ๊ฐ์ด๋์์ ๋งค์ฐ ๊ฐ๋จํ ๊ตฌํ์ ๋ณผ ์ ์์ต๋๋ค. ์ข์ ํ๋ฃจ ๋์ธ์!
Video Guide
๐ ๐
Reference
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(๐ฌNodeJs WebSocketS ์ฑํ ์ฑ), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://dev.to/alexpaper/nodejs-websockets-chat-app-4d51ํ ์คํธ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์์ต๋๋ค.ํ์ง๋ง ์ด ๋ฌธ์์ URL์ ์ฐธ์กฐ URL๋ก ๋จ๊ฒจ ๋์ญ์์ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค