๐ ์์ผ(Socket)
์์ผ์ ๋คํธ์ํฌ ํต์ ์์ ์ฌ์ฉ๋๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๊ฐ๋ ์ค ํ๋์ด๋ค. Request๊ฐ ์์ด์ผ๋ง Response๋ฅผ ์ ์กํ ์ ์๋ HTTP ํ๋กํ ์ฝ๊ณผ๋ ๋ค๋ฅด๊ฒ ์์ผ์ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ์๋ฐฉํฅ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ค. ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ฑฐ๋ ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ์ ์๋ค. ์์ผ์ TCP ๋๋ UDP ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ํต์ ํ๋ฉฐ ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ค์๊ฐ ํต์ ์ ๊ตฌํํ ์ ์๋ค.
๐ WebSocket
WebSocket์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ค์๊ฐ ์๋ฐฉํฅ ํต์ ์ ์ง์ํ๊ธฐ ์ํ ํ์ค ํ๋กํ ์ฝ์ด๋ค. HTTP๋ฅผ ํตํด ์ด๊ธฐ ์ฐ๊ฒฐ์ ์ค์ ํ ํ, ๊ณ์ํด์ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ์๋ฐฉํฅ ํต์ ์ ๊ฐ๋ฅ์ผ ํ๋ค. WebSocket์ HTTP์ ์ค๋ฒํค๋๋ฅผ ์ค์ด๊ณ ๋น ๋ฅธ ์๋์ ์ค์๊ฐ ํต์ ์ ์ ๊ณตํ๋ค.
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', function connection(ws) {
ws.on('message', function incoming(message) {
console.log('received: %s', message);
ws.send(message); // ํด๋ผ์ด์ธํธ์๊ฒ ๋ฐ์ดํฐ ์ ์ก
});
});
๐ Socket.io
Socket.io๋ WebSocket์ ๊ธฐ๋ฐ์ผ๋ก ํ ์ค์๊ฐ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๊ธฐ ์ํ JavaScript ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. Socket.IO๋ WebSocket์ ๊ธฐ๋ฅ์ ํ์ฅํ๊ณ , ๋ค์ํ ๋ธ๋ผ์ฐ์ ์ ๊ธฐ๊ธฐ ๊ฐ์ ํธํ์ฑ์ ๋ณด์ฅํ๋ค. ๋ํ, ์ค์๊ฐ ํต์ ์ธ์๋ ์ฌ๋ฌ ๊ฐ์ง ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ ๊ฐ๋ฐ์๊ฐ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ค.
[์๋ฒ]
const io = require('socket.io')(3000);
io.on('connection', (socket) => {
console.log('a user connected');
socket.on('chat message', (msg) => {
io.emit('chat message', msg); // ๋ชจ๋ ํด๋ผ์ด์ธํธ์๊ฒ ๋ฉ์์ง ์ ์ก
});
});
[ํด๋ผ์ด์ธํธ]
<script src="/socket.io/socket.io.js"></script>
<script>
const socket = io('http://localhost:3000');
socket.on('chat message', function(msg) {
console.log('message: ' + msg);
});
</script>
'Node.js > Theory' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Node.js] Express ํ๋ ์์ํฌ (0) | 2024.05.24 |
|---|---|
| [Node.js] Node.js์ ๊ธฐ๋ณธ ๋ด์ฅ ๋ชจ๋ (0) | 2024.05.24 |
๋๊ธ