Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Aplikasi praktikal teknologi WebSocket dalam bilik sembang dalam talian

Aplikasi praktikal teknologi WebSocket dalam bilik sembang dalam talian

WBOY
WBOYasal
2023-10-15 11:37:411261semak imbas

Aplikasi praktikal teknologi WebSocket dalam bilik sembang dalam talian

Aplikasi praktikal teknologi WebSocket dalam bilik sembang dalam talian

Dengan perkembangan pesat Internet, permintaan orang ramai untuk pemesejan segera semakin tinggi. Walaupun protokol HTTP tradisional boleh menghantar data, ia perlu memulakan permintaan setiap kali, yang tidak cekap. Untuk menyelesaikan masalah ini, teknologi WebSocket telah wujud. Teknologi WebSocket boleh mewujudkan saluran komunikasi dua hala yang berterusan antara penyemak imbas dan pelayan, meningkatkan kecekapan dan prestasi masa nyata penghantaran data, jadi ia telah digunakan secara meluas dalam bilik sembang dalam talian.

Kelebihan WebSocket:

  1. Latensi rendah: Berbanding dengan model HTTP permintaan-tindak balas tradisional, teknologi WebSocket boleh mewujudkan sambungan berterusan dan mencapai komunikasi segera untuk menghantar kandungan sembang kepada pengguna lain dengan lebih pantas.
  2. Kurang trafik rangkaian: Teknologi WebSocket memindahkan data berbilang kali dengan mewujudkan sambungan dan bukannya menghantar permintaan HTTP setiap kali. Ini mengurangkan bilangan paket dan mengurangkan trafik rangkaian.
  3. Keserasian yang lebih baik: Standard teknologi WebSocket telah matang dan disokong secara meluas oleh penyemak imbas moden tanpa memerlukan pemalam atau perpustakaan tambahan.

Berikut mengambil ruang sembang dalam talian sebagai contoh untuk memperkenalkan aplikasi praktikal teknologi WebSocket.

Pertama sekali, di bahagian pelayan, kami menggunakan Node.js sebagai bahasa hujung belakang. Kelebihan menggunakan Node.js ialah anda boleh menggunakan bahasa JavaScript untuk pembangunan, yang memudahkan interaksi dengan bahagian hadapan.

//引入WebSocket模块
const WebSocket = require('ws');

//创建WebSocket服务器
const wss = new WebSocket.Server({ port: 3000 });

//保存连接的用户
const users = new Set();

//WebSocket服务端启动成功后的回调函数
wss.on('listening', () => {
  console.log('WebSocket server is running on port 3000.');
});

//处理WebSocket连接
wss.on('connection', (ws) => {
  //将新用户添加到用户列表中
  users.add(ws);

  //监听消息事件
  ws.on('message', (message) => {
    //将消息发送给其他用户
    users.forEach((user) => {
      if (user !== ws) {
        user.send(message);
      }
    });
  });

  //监听连接关闭事件
  ws.on('close', () => {
    //将用户从用户列表中移除
    users.delete(ws);
  });
});

Di sisi pelanggan, kami menggunakan HTML, CSS dan JavaScript untuk melaksanakan antara muka pengguna dan komunikasi dengan pelayan.

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>在线聊天室</title>
  <style>
    #chat { width: 400px; height: 300px; margin-bottom: 10px; overflow-y: auto; }
  </style>
</head>
<body>
  <div id="chat"></div>
  <input type="text" id="message" placeholder="请输入消息">
  <button id="send">发送</button>

  <script>
    const chat = document.getElementById('chat');
    const messageInput = document.getElementById('message');
    const sendButton = document.getElementById('send');

    //创建WebSocket连接
    const ws = new WebSocket('ws://localhost:3000');

    //监听WebSocket连接成功事件
    ws.addEventListener('open', () => {
      console.log('WebSocket connection is established.');
    });

    //监听WebSocket接收到消息事件
    ws.addEventListener('message', (event) => {
      const message = event.data;
      const messageNode = document.createElement('p');
      messageNode.textContent = message;
      chat.appendChild(messageNode);
    });

    //发送消息
    sendButton.addEventListener('click', () => {
      const message = messageInput.value;
      ws.send(message);
      messageInput.value = '';
    });
  </script>
</body>
</html>

Kod di atas melaksanakan ruang sembang dalam talian yang mudah. Apabila pengguna mengakses halaman melalui pelayar, sambungan WebSocket diwujudkan dan mesej yang dimasukkan oleh pengguna dihantar ke pelayan. Pelayan akan memajukan mesej yang diterima kepada pengguna lain yang disambungkan, sekali gus merealisasikan fungsi sembang masa nyata.

Melalui teknologi WebSocket, aplikasi praktikal bilik sembang dalam talian direalisasikan. Komunikasi dua hala WebSocket boleh mengurangkan kelewatan masa dan trafik rangkaian dengan berkesan, memberikan pengalaman pengguna yang lebih baik. Memandangkan teknologi WebSocket terus berkembang dan bertambah baik, saya percaya ia akan digunakan dan dipromosikan dalam lebih banyak bidang.

Atas ialah kandungan terperinci Aplikasi praktikal teknologi WebSocket dalam bilik sembang dalam talian. 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 berkaitan

Lihat lagi