[javascript] Socket.io를 사용하여 실시간 주식 시세를 어떻게 구현할 수 있나요?
주식 시세를 실시간으로 제공하기 위해 Socket.io를 사용하는 방법에 대해 알아보겠습니다. Socket.io는 웹 소켓을 기반으로 한 실시간 통신 라이브러리로, 클라이언트와 서버간에 양방향 통신을 가능하게 합니다.
먼저, Node.js와 Express를 사용하여 서버를 설정해야 합니다. 다음은 기본적인 서버 설정 예시입니다.
const express = require('express');
const app = express();
const server = require('http').createServer(app);
const io = require('socket.io')(server);
io.on('connection', (socket) => {
console.log('New client connected');
// 클라이언트에게 주식 시세를 전송
setInterval(() => {
const stockPrice = Math.random() * 1000;
socket.emit('stock_price', stockPrice);
}, 1000);
socket.on('disconnect', () => {
console.log('Client disconnected');
});
});
server.listen(3000, () => {
console.log('Server running on port 3000');
});
위 코드에서는 클라이언트가 서버에 접속할 때마다 새로운 클라이언트 연결(connection
) 이벤트가 발생합니다. 이때, setInterval
함수를 사용하여 주식 가격을 일정 간격으로 생성하고, socket.emit
을 통해 클라이언트로 주식 가격을 전송합니다.
이제 클라이언트 측에서는 Socket.io를 사용하여 서버로부터 주식 시세를 받아오는 코드를 작성해야 합니다. 다음은 기본적인 클라이언트 설정 예시입니다.
<!DOCTYPE html>
<html>
<head>
<title>Real-time Stock Price</title>
<script src="https://cdn.socket.io/socket.io-1.4.5.js"></script>
</head>
<body>
<h1>Real-time Stock Price</h1>
<div id="stock-price"></div>
<script>
const socket = io('http://localhost:3000');
socket.on('stock_price', (stockPrice) => {
document.getElementById('stock-price').innerText = `Current Stock Price: $${stockPrice}`;
});
</script>
</body>
</html>
위 코드에서는 Socket.io 클라이언트 라이브러리를 HTML 파일에 추가했습니다. 클라이언트 측에서 io
함수를 호출하여 서버에 연결하고, socket.on
을 사용하여 서버로부터 받은 주식 가격을 업데이트합니다.
이제 서버를 실행하고 클라이언트를 열어보면 실시간으로 주식 시세가 업데이트되는 것을 확인할 수 있습니다. Socket.io를 사용하면 실시간 데이터를 쉽게 전송할 수 있으므로, 주식 시세를 비롯한 다양한 실시간 데이터를 구현할 수 있습니다.
이 글은 다음 자료를 참고하여 작성되었습니다: