Bagaimana untuk menolak secara kerap dalam nodejs

PHPz
Lepaskan: 2023-04-26 10:02:12
asal
796 orang telah melayarinya

Dengan perkembangan pesat Internet mudah alih, sifat masa nyata dan pengalaman pengguna aplikasi Web menjadi semakin penting, terutamanya dalam bidang seperti komunikasi masa nyata, permainan dalam talian dan Internet of Things. Untuk memenuhi keperluan kawasan ini, kami perlu menggunakan beberapa teknologi untuk melaksanakan perkhidmatan tolak. Sebagai persekitaran berjalan JavaScript sisi pelayan yang cekap, Node.js menyediakan penyelesaian yang agak mudah untuk push masa nyata.

Bagaimana Node.js melaksanakan perkhidmatan tolak? Berikut ialah beberapa kaedah yang biasa digunakan:

  1. Polling

Polling ialah kaedah pelaksanaan yang paling asas. Pelayan secara berterusan menghantar permintaan kepada pelanggan, dan kemudian pelanggan mengundi pelayan pada selang masa yang sepadan untuk menentukan sama ada terdapat data baharu. Kaedah ini mudah dilaksanakan, tetapi mempunyai kecekapan yang rendah Apabila bilangan sambungan meningkat, tekanan pada pelayan terus meningkat.

  1. Komet

Model Komet ialah model di mana pelayan menolak data kepada klien Ia membenarkan pelayan web menolak data kepada klien tanpa memerlukan pelanggan permintaan. Dua kaedah, tinjauan panjang dan penstriman, biasanya digunakan. Kaedah ini akan mewujudkan banyak sambungan yang panjang dan meningkatkan tekanan pelayan.

  1. WebSocket

Protokol WebSocket ialah protokol TCP dengan komunikasi dua hala, yang boleh membantu kami mencapai komunikasi masa nyata. Melalui protokol WebSocket, kami boleh mewujudkan sambungan berterusan antara pelanggan dan pelayan, supaya pelanggan boleh menerima maklumat push daripada pelayan dalam masa nyata. Kaedah ini juga boleh mengurangkan tekanan permintaan pada pelayan, tetapi ia memerlukan kedua-dua pelanggan dan pelayan untuk menyokong protokol WebSocket.

  1. Acara Dihantar Pelayan

Serupa dengan WebSocket, protokol Acara Dihantar Pelayan juga boleh melaksanakan perkhidmatan tolak sebelah pelayan. Ia adalah protokol komunikasi sehala berdasarkan protokol HTTP yang membolehkan pelayan menolak beberapa maklumat acara kepada pelanggan, dan pelanggan hanya perlu mendengar acara ini. Berbanding dengan WebSocket, protokol Acara Dihantar Pelayan adalah lebih ringan dan juga boleh melindungi beberapa logik kompleks WebSocket.

Antara empat kaedah di atas, WebSocket dan Acara Dihantar Pelayan secara meluas dianggap sebagai teknologi yang paling sesuai untuk merealisasikan komunikasi masa nyata dan mempromosikan perkhidmatan. Dalam Node.js, kami boleh menggunakan beberapa perpustakaan pihak ketiga untuk melaksanakan WebSocket dan Acara Dihantar Pelayan.

  1. Perpustakaan WebSocket

Dalam Node.js, terdapat beberapa perpustakaan WebSocket pihak ketiga, seperti WebSocket-Node, ws, SockJS, dsb. Perpustakaan ini semuanya menyediakan pelaksanaan protokol WebSocket yang sangat serasi, yang boleh mewujudkan sambungan komunikasi dua hala dengan mudah antara pelayan dan pelanggan, dengan itu memastikan kecekapan tolakan masa nyata. Berikut ialah kod sampel yang menggunakan perpustakaan ws untuk melaksanakan WebSocket:

const WebSocket = require('ws');

const wss = new WebSocket.Server({ port: 8080 });

wss.on('connection', function connection(ws) {
  ws.on('message', function incoming(message) {
    console.log('received: %s', message);
  });

  ws.send('Hello, you have connected to the server.');
});
Salin selepas log masuk
  1. Pustaka Acara Dihantar Pelayan

Dalam Node.js, terdapat beberapa pertiga -party Server- pustaka Acara Dihantar, seperti sse, Server-Sent-Events, sumber acara, dsb. Perpustakaan ini semuanya menyediakan pelaksanaan komunikasi sehala berdasarkan protokol HTTP, yang boleh menolak maklumat daripada pelayan kepada klien. Berikut ialah kod sampel yang menggunakan perpustakaan sse untuk melaksanakan Acara Dihantar Pelayan:

const SSE = require('sse');

const http = require('http');

const server = http.createServer(function(req, res) {
  res.writeHead(200, { 'Content-Type': 'text/event-stream' });

  sse.send({
    message: 'Hello, you have connected to the server.',
  });
});

server.listen(8080);

const sse = new SSE(server);
Salin selepas log masuk

Selain itu, dalam aplikasi praktikal, kita sering perlu menolak maklumat dengan kerap, seperti menghantar beberapa berita kepada pelanggan kerap dan menolak beberapa gelagat pengguna menunggu. Node.js menyediakan beberapa modul pemasa, yang lebih biasa digunakan ialah setTimeout dan setInterval.

  1. setTimeout

setTimeout ialah fungsi global yang digunakan untuk melaksanakan beberapa fungsi selepas masa yang ditentukan. Berikut ialah contoh kod:

setTimeout(function() {
  console.log('定时器已经执行完成');
}, 5000);
Salin selepas log masuk

Kod di atas akan mengeluarkan mesej konsol bahawa "pemasa telah dilaksanakan" selepas 5 saat.

  1. setInterval

setInterval juga merupakan fungsi global, digunakan untuk melaksanakan beberapa fungsi dalam gelung. Berikut ialah contoh kod:

setInterval(function() {
  console.log('定时器已经执行一次');
}, 5000);
Salin selepas log masuk

Kod di atas akan mengeluarkan mesej konsol "Pemasa telah dilaksanakan sekali" setiap 5 saat.

Seperti yang dapat dilihat daripada di atas, Node.js menyediakan beberapa perkhidmatan tolak dan modul pemasa yang mudah dan pantas untuk aplikasi Dengan menggunakan modul ini, kami boleh melaksanakan perkhidmatan tolak masa nyata dan perkhidmatan tolak berjadual dengan mudah.

Atas ialah kandungan terperinci Bagaimana untuk menolak secara kerap dalam nodejs. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!