최신 웹 애플리케이션의 발전으로 실시간 데이터에 대한 수요가 점점 더 높아지고 있습니다. Node.js는 실시간 데이터 처리를 위한 효율적이고 안정적인 플랫폼을 제공하는 V8 엔진을 기반으로 하는 JavaScript 백엔드 프레임워크입니다.
Node.js에는 실시간 데이터 전송을 달성하는 데 사용되는 여러 기술이 있습니다. 그 중 몇 가지를 아래에서 소개하겠습니다.
WebSocket은 클라이언트와 서버 간에 실시간 데이터를 전송하기 위한 양방향 통신 채널을 제공하는 프로토콜입니다. HTTP와 달리 WebSocket 연결은 지속적입니다. 즉, 일단 연결이 설정되면 서버에서 데이터를 수신할 수 있고 연결이 유지되는 동안 데이터를 서버로 보낼 수도 있습니다.
Node.js에서는 ws나 소켓.io와 같은 모듈을 사용하여 WebSocket을 구현할 수 있습니다. 이러한 모듈은 모두 WebSocket 서버 생성, 연결 및 메시지 전송 처리, 연결 유지를 위한 사용하기 쉬운 API를 제공합니다.
다음은 ws 모듈을 사용하여 WebSocket 서버를 구현하는 샘플 코드입니다.
const WebSocket = require('ws'); const wsServer = new WebSocket.Server({ port: 8080 }); wsServer.on('connection', (ws) => { console.log('New client connected'); // send a welcome message to the client ws.send('Welcome to the WebSocket server!'); // handle messages from the client ws.on('message', (message) => { console.log(`Received message: ${message}`); // echo the message back to the client ws.send(`You sent: ${message}`); }); });
Server-Sent Events(SSE)는 HTTP 프로토콜을 사용하여 실시간 이벤트를 보내는 기술입니다. 클라이언트에게. WebSocket과 달리 SSE는 단방향이며 서버에서 클라이언트로만 데이터를 보낼 수 있지만 여전히 실시간 데이터를 푸시하는 데 매우 적합한 기술입니다.
Node.js에서는 sse 또는 express-sse와 같은 모듈을 사용하여 SSE를 구현할 수 있습니다. 또한 이러한 모듈은 이벤트 전송 및 연결 유지를 위한 몇 가지 편리한 API를 제공합니다.
다음은 express-sse 모듈을 사용하여 SSE 서버를 구현하는 샘플 코드입니다.
const express = require('express'); const sse = require('express-sse'); const app = express(); app.use(express.static('public')); const sseServer = new sse(); // send an initial message to the client when the connection is established sseServer.send('Connected'); // handle SSE requests from the client app.get('/sse', sseServer.init); // send a message to all connected clients sseServer.send('A new message has arrived!'); // close the connection to all connected clients sseServer.close(); app.listen(8080, () => { console.log('SSE server started on port 8080'); });
Long-Polling은 양방향 통신을 시뮬레이션하는 실시간 데이터 전송을 시뮬레이션하는 기술입니다. HTTP 프로토콜을 통해. WebSocket 및 SSE와 달리 Long-Polling은 HTTP 요청을 서버에 열어두어 실시간 데이터 전송을 시뮬레이션합니다.
Node.js에서는 polka나 express와 같은 프레임워크를 사용하여 Long-Polling을 구현할 수 있습니다. 이러한 프레임워크는 요청의 비동기 처리를 지원하며 요청이 처리될 때까지 연결을 열린 상태로 유지할 수 있습니다.
다음은 polka 프레임워크를 사용하여 Long-Polling을 구현하는 샘플 코드입니다.
const polka = require('polka'); polka() .get('/long-polling', async (req, res) => { // wait for some event to happen const data = await waitForData(); // send the data back to the client res.end(data); }) .listen(8080, () => { console.log('Long-Polling server started on port 8080'); });
요약:
위는 Node.js에서 실시간 데이터 전송을 구현하기 위한 여러 가지 기술입니다. 각 기술마다 장점이 있고 적용 가능합니다. 시나리오. WebSocket은 양방향 통신이 필요한 애플리케이션에 널리 사용되는 프로토콜입니다. SSE는 서버에서 클라이언트로 데이터를 전송하기만 하면 되는 시나리오에 적합한 간단한 구현입니다. Long-Polling은 실시간 데이터 전송 기술을 시뮬레이션하는 방법입니다. WebSocket 또는 SSE를 사용할 수 없는 상황에 적합합니다.
위 내용은 nodejs에서 실시간으로 데이터를 보내는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!