Rumah  >  Artikel  >  hujung hadapan web  >  JavaScript dan WebSocket: Cipta sistem pengedaran data masa nyata yang cekap

JavaScript dan WebSocket: Cipta sistem pengedaran data masa nyata yang cekap

WBOY
WBOYasal
2023-12-18 12:49:11762semak imbas

JavaScript dan WebSocket: Cipta sistem pengedaran data masa nyata yang cekap

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

  1. Buat sambungan WebSocket

Gunakan objek WebSocket JavaScript untuk mencipta sambungan WebSocket. Berikut ialah contoh:

var socket = new WebSocket('ws://localhost:8080');
  1. Mendengar acara WebSocket

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.

  1. Hantar mesej WebSocket

Gunakan objek WebSocket JavaScript untuk menghantar mesej ke pelayan. Berikut ialah contoh:

socket.send('Hello, WebSocket!');
  1. Tutup sambungan 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!

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