>  기사  >  웹 프론트엔드  >  nodejs에서 실시간으로 데이터를 보내는 방법

nodejs에서 실시간으로 데이터를 보내는 방법

WBOY
WBOY원래의
2023-05-16 20:29:36691검색

최신 웹 애플리케이션의 발전으로 실시간 데이터에 대한 수요가 점점 더 높아지고 있습니다. Node.js는 실시간 데이터 처리를 위한 효율적이고 안정적인 플랫폼을 제공하는 V8 엔진을 기반으로 하는 JavaScript 백엔드 프레임워크입니다.

Node.js에는 실시간 데이터 전송을 달성하는 데 사용되는 여러 기술이 있습니다. 그 중 몇 가지를 아래에서 소개하겠습니다.

  1. WebSocket

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}`);
  });
});
  1. Server-Sent Events

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');
});
  1. Long-Polling

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.