Kini, pengedaran data masa nyata telah menjadi salah satu keperluan perniagaan yang paling penting bagi perusahaan, dan JavaScript serta WebSocket telah menjadi alat yang berkuasa untuk mencapai pengedaran data masa nyata yang cekap. Artikel ini akan memperkenalkan cara menggunakan teknologi JavaScript dan WebSocket untuk membina sistem pengedaran data masa nyata yang cekap, dan menyediakan contoh kod khusus.
1. Apakah itu WebSocket?
Sebelum memperkenalkan WebSocket, anda perlu memahami protokol HTTP terlebih dahulu. Protokol HTTP adalah protokol lapisan aplikasi yang paling biasa digunakan.
Di bawah protokol HTTP, pelanggan mesti terus membuat permintaan kepada pelayan untuk mendapatkan data, tetapi untuk pengedaran data masa nyata, kaedah ini jelas tidak boleh dilaksanakan. Oleh itu, WebSocket wujud.
WebSocket ialah protokol untuk komunikasi dupleks penuh melalui sambungan TCP tunggal, yang menggunakan protokol HTTP untuk berjabat tangan dan menggunakan soket TCP untuk pemindahan data. Protokol WebSocket bukan sahaja menyelesaikan masalah kependaman rendah yang diperlukan untuk komunikasi masa nyata, tetapi juga menyelesaikan masalah kecekapan tinggi yang diperlukan untuk data tolak pelayan.
2. Gunakan JavaScript dan WebSocket untuk mencapai pengedaran data masa nyata
Gunakan objek WebSocket JavaScript untuk mencipta sambungan WebSocket. Berikut ialah contoh:
var socket = new WebSocket('ws://localhost:8080');
Untuk mengendalikan acara berlainan sambungan WebSocket, anda perlu mendengar beberapa acara WebSocket, termasuk acara onopen, onmessage, onerror dan onclose. Seperti yang ditunjukkan di bawah:
socket.onopen = function () { console.log('WebSocket连接已建立'); }; socket.onmessage = function (event) { console.log('收到消息: ' + event.data); }; socket.onerror = function (error) { console.log('WebSocket错误: ' + error); }; socket.onclose = function (event) { console.log('WebSocket连接已关闭: ' + event.code + ' ' + event.reason); };
Apabila sambungan WebSocket berjaya diwujudkan, acara onopen akan dicetuskan apabila mesej baharu diterima, acara onmessage akan dicetuskan apabila ralat berlaku dalam sambungan WebSocket, peristiwa onerror akan berlaku; dicetuskan; apabila sambungan WebSocket adalah Apabila ditutup, acara onclose akan dicetuskan.
Gunakan objek WebSocket JavaScript untuk menghantar mesej ke pelayan. Berikut ialah contoh:
socket.send('Hello, WebSocket!');
Anda boleh menggunakan kaedah close() untuk menutup sambungan WebSocket. Seperti yang ditunjukkan di bawah:
socket.close();
3. Contoh kod
Melaksanakan pelayan WebSocket menggunakan perpustakaan WebSocket Node.js:
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('收到消息: %s', message); wss.clients.forEach(function each(client) { if (client !== ws && client.readyState === WebSocket.OPEN) { client.send(message); console.log('消息已广播: %s', message); } }); }); ws.on('close', function () { console.log('WebSocket连接关闭'); }); });
Melaksanakan klien WebSocket menggunakan HTML dan JavaScript:
<!DOCTYPE html> <html> <head> <title>WebSocket实例</title> <meta charset="utf-8"> </head> <body> <input type="text" id="message"> <button onclick="send()">发送</button> <ul id="messages"></ul> </body> <script> var socket = new WebSocket('ws://localhost:8080'); socket.onopen = function () { console.log('WebSocket连接已建立'); }; socket.onmessage = function (event) { console.log('收到消息: ' + event.data); var li = document.createElement("li"); li.textContent = event.data; document.getElementById("messages").appendChild(li); }; socket.onerror = function (error) { console.log('WebSocket错误: ' + error); }; socket.onclose = function (event) { console.log('WebSocket连接已关闭: ' + event.code + ' ' + event.reason); }; function send() { var message = document.getElementById("message").value; socket.send(message); } </script> </html>
4. Dengan menggunakan JavaScript dan
Teknologi WebSocket, sistem pengedaran data masa nyata yang cekap boleh dibina. Protokol WebSocket menggunakan sambungan TCP untuk mencapai komunikasi dupleks penuh, yang boleh menyelesaikan masalah ketidakcekapan protokol HTTP. Menghantar dan menerima mesej melalui sambungan WebSocket memudahkan untuk mencapai pengedaran data masa nyata dari pelayan ke pelanggan. Artikel ini menyediakan contoh kod terperinci, saya harap ia akan membantu pembaca.Atas ialah kandungan terperinci JavaScript dan WebSocket: Cipta sistem pengedaran data masa nyata yang cekap. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!