Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk menghantar data dalam masa nyata dalam nodejs

Bagaimana untuk menghantar data dalam masa nyata dalam nodejs

WBOY
WBOYasal
2023-05-16 20:29:36645semak imbas

Dengan pembangunan aplikasi web moden, permintaan untuk data masa nyata semakin tinggi. Node.js ialah rangka kerja hujung belakang JavaScript berdasarkan enjin V8, yang menyediakan platform yang cekap dan stabil untuk memproses data masa nyata.

Dalam Node.js, terdapat beberapa teknologi yang digunakan untuk mencapai pemindahan data masa nyata. Beberapa daripada mereka akan diperkenalkan di bawah.

  1. WebSocket

WebSocket ialah protokol yang menyediakan saluran komunikasi dua hala untuk menghantar data masa nyata antara pelanggan dan pelayan. Tidak seperti HTTP, sambungan WebSocket adalah berterusan, yang bermaksud bahawa setelah sambungan diwujudkan, data boleh diterima daripada pelayan dan data juga boleh dihantar ke pelayan semasa sambungan dikekalkan.

Dalam Node.js, WebSocket boleh dilaksanakan menggunakan modul seperti ws atau socket.io. Semua modul ini menyediakan API yang mudah digunakan untuk mencipta pelayan WebSocket, mengendalikan sambungan dan pemindahan mesej dan mengekalkan sambungan.

Berikut ialah contoh kod yang menggunakan modul ws untuk melaksanakan pelayan 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. Acara Dihantar Pelayan

Acara Dihantar Pelayan (SSE) ialah Teknologi yang menggunakan protokol HTTP untuk menghantar acara masa nyata kepada pelanggan. Tidak seperti WebSocket, SSE adalah sehala dan hanya boleh menghantar data dari pelayan kepada pelanggan, tetapi ia masih merupakan teknologi yang sangat sesuai untuk menolak data masa nyata.

Dalam Node.js, SSE boleh dilaksanakan menggunakan modul seperti sse atau express-sse. Modul ini juga menyediakan beberapa API yang mudah untuk menghantar acara dan mengekalkan sambungan.

Berikut ialah contoh kod untuk melaksanakan pelayan SSE menggunakan modul express-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 ialah simulasi Teknologi untuk penghantaran data masa nyata yang menyerupai komunikasi dua hala melalui protokol HTTP. Tidak seperti WebSocket dan SSE, Long-Polling mensimulasikan pemindahan data masa nyata dengan memastikan permintaan HTTP terbuka pada pelayan.

Dalam Node.js, Long-Polling boleh dilaksanakan menggunakan rangka kerja seperti polka atau express. Rangka kerja ini menyokong pemprosesan tak segerak permintaan dan boleh memastikan sambungan terbuka sehingga permintaan diproses.

Berikut ialah contoh kod yang menggunakan rangka kerja polka untuk melaksanakan 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');
  });

Ringkasan:

Di atas adalah beberapa teknologi untuk merealisasikan penghantaran data masa nyata dalam Node.js, setiap Setiap teknologi mempunyai kelebihan dan senario yang boleh digunakan. WebSocket ialah protokol yang digunakan secara meluas untuk aplikasi yang memerlukan komunikasi dua hala SSE adalah pelaksanaan mudah yang sesuai untuk senario yang hanya perlu menghantar data dari pelayan kepada pelanggan ialah kaedah yang menyerupai teknologi penghantaran data masa nyata untuk situasi di mana WebSocket atau SSE tidak boleh digunakan.

Atas ialah kandungan terperinci Bagaimana untuk menghantar data dalam masa nyata dalam nodejs. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Nodejs membina pelayan imejArtikel seterusnya:Nodejs membina pelayan imej