์ด๋ฒคํธ ์ด๋ฆ์ด ding ๋ฐ dong ์ผ ๋ ์์๋๋ก ์๋ํ์ง๋ง ์ด๋ฒคํธ ์ด๋ฆ์ด ping ๋ฐ pong ์ผ ๋ ๋งค์ฐ ์ด์ํ๊ฒ ์๋ํ๋ ๋ช ๊ฐ์ง ๊ธฐ๋ณธ ์ฝ๋(์๋ ์ฐธ์กฐ)๊ฐ ์์ต๋๋ค.
์ด๋ฒคํธ ์ด๋ฆ์ด ping ๋ฐ pong ์ผ ๋
์๋ฒ ์ฝ๋
const fs = require('fs');
const http = require('http');
const path = require('path');
const SocketIOServer = require('socket.io');
const app = new http.Server();
app.on('request', (req, res) => {
const index = path.join(__dirname, 'public', 'index.html')
fs.readFile(index, function (err, data) {
if (err) {
res.writeHead(500);
return res.end('Error loading index.html');
}
res.writeHead(200);
res.end(data);
});
});
app.listen(3000, 'localhost');
const io = new SocketIOServer(app);
// could also use "connection"
io.on('connect', function (socket) {
console.log(`${socket.id} "connect"`);
socket.on('ping', (data) => {
console.log('Receive "ping"');
io.emit('pong', {});
console.log('Send "pong"');
});
socket.on('disconnect', () => {
console.log(`${socket.id} "disconnect"`);
});
});
ํด๋ผ์ด์ธํธ ์ฝ๋
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Socket.IO Events</title>
</head>
<body>
<h1>Socket.IO Events</h1>
<script src="/socket.io/socket.io.js"></script>
<script>
const socket = io();
socket.on('pong', (data) => {
console.log('Receive "pong"');
});
socket.emit('ping', {});
console.log('Send "ping"');
</script>
</body>
</html>
๋๋ ์ฌ๊ธฐ์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์ ํ ๋ชจ๋ฅธ๋ค. ๋ํ ์ด๊ฒ์ #1951๊ณผ ๊ด๋ จ์ด ์์ ์ ์์ต๋๋ค.
'ping' / 'pong' ์ด๋ฒคํธ ์ด๋ฆ์ ์ฌ์ฉํ๋ ๋์ ์ด์ํ ๋์์ด ๋ณด์ ๋๋ค. socket.io์ ping๊ณผ pong์ผ๋ก ์์ ์ ์ํํ๋ ์ฝ๋๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ ์กฐ์ฌํ ์๊ฐ์ด ์์ต๋๋ค. ์ด๋ฆ์ด '๋ก ๋ณ๊ฒฝ๋์์ต๋๋ค. ๋๋ฆฝ'๊ณผ '๋๋ฆฝ'
ping
๋ฐ pong
์ด๋ฒคํธ๋ socket.io-client์์ ์ฌ์ฉ๋ฉ๋๋ค.
https://github.com/socketio/socket.io-client#events ๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
๋ช ์๊ฐ ๋์ 'ํ' ์ด๋ฒคํธ์ ๊ฐํ์ต๋๋ค.
๊ณต์ ๋ฌธ์ ๊ฐ GitHub์ ๋ฌธ์ ์ ๋๊ธฐํ๋ ์ ์๋ค๊ณ ์๊ฐํฉ๋๊น?
์๋๋ฉด ์ฌ๋๋ค์ด ๋ค์ ๊ฐํ์ง ์๋๋ก ์์ฝ๋ ์ด๋ฒคํธ ์ด๋ฆ์ ๋ฌธ์์ ๊ธฐ๋กํ ์ ์์ต๋๊น?
์๊ฐ ๋ญ๋น์ ๋๋ค. ์ฐ๋ฆฌ ๋ชจ๋(socket.io ํ ํฌํจ)๋ ๊ฐ์ ๋์ ์๊ฐ์ ํ์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ELSE๋ ๋ฌด์์ ์์ฝํฉ๋๊น?
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ช ์๊ฐ ๋์ 'ํ' ์ด๋ฒคํธ์ ๊ฐํ์ต๋๋ค.
๊ณต์ ๋ฌธ์ ๊ฐ GitHub์ ๋ฌธ์ ์ ๋๊ธฐํ๋ ์ ์๋ค๊ณ ์๊ฐํฉ๋๊น?
์๋๋ฉด ์ฌ๋๋ค์ด ๋ค์ ๊ฐํ์ง ์๋๋ก ์์ฝ๋ ์ด๋ฒคํธ ์ด๋ฆ์ ๋ฌธ์์ ๊ธฐ๋กํ ์ ์์ต๋๊น?