Maison développement back-end tutoriel php Application pratique de la technologie WebSocket dans les forums de discussion en ligne

Application pratique de la technologie WebSocket dans les forums de discussion en ligne

Oct 15, 2023 am 11:37 AM
在线聊天室 实际应用 Websocket d'application pratique

Application pratique de la technologie WebSocket dans les forums de discussion en ligne

Application pratique de la technologie WebSocket dans les forums de discussion en ligne

Avec le développement rapide d'Internet, la demande de messagerie instantanée est de plus en plus élevée. Bien que le protocole HTTP traditionnel puisse transmettre des données, il doit à chaque fois lancer une requête, ce qui est inefficace. Afin de résoudre ce problème, la technologie WebSocket a vu le jour. La technologie WebSocket peut établir un canal de communication bidirectionnel persistant entre le navigateur et le serveur, améliorant considérablement l'efficacité et les performances en temps réel de la transmission de données, elle a donc été largement utilisée dans les forums de discussion en ligne.

Avantages de WebSocket :

  1. Latence plus faible : par rapport au modèle de requête-réponse HTTP traditionnel, la technologie WebSocket peut établir une connexion persistante, établir une communication instantanée et envoyer plus rapidement du contenu de discussion à d'autres utilisateurs.
  2. Moins de trafic réseau : la technologie WebSocket transfère les données plusieurs fois en établissant une connexion au lieu d'envoyer une requête HTTP à chaque fois. Cela réduit le nombre de paquets et réduit le trafic réseau.
  3. Meilleure compatibilité : le standard de la technologie WebSocket a mûri et est largement pris en charge par les navigateurs modernes sans avoir besoin de plug-ins ou de bibliothèques supplémentaires.

Ce qui suit prend comme exemple un salon de discussion en ligne pour présenter l'application pratique de la technologie WebSocket.

Tout d'abord, côté serveur, nous utilisons Node.js comme langage backend. L'avantage d'utiliser Node.js est que vous pouvez utiliser le langage JavaScript pour le développement, ce qui facilite l'interaction avec le front-end.

//引入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);
  });
});
Copier après la connexion

Côté client, nous utilisons HTML, CSS et JavaScript pour implémenter l'interface utilisateur et la communication avec le serveur.

<!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>
Copier après la connexion

Le code ci-dessus implémente un simple salon de discussion en ligne. Lorsqu'un utilisateur accède à une page via un navigateur, une connexion WebSocket est établie et le message saisi par l'utilisateur est envoyé au serveur. Le serveur transmettra les messages reçus aux autres utilisateurs connectés, réalisant ainsi la fonction de chat en temps réel.

Grâce à la technologie WebSocket, l'application pratique des salons de discussion en ligne est réalisée. La communication bidirectionnelle de WebSocket peut réduire efficacement les délais et le trafic réseau, offrant ainsi une meilleure expérience utilisateur. À mesure que la technologie WebSocket continue de se développer et de s'améliorer, je pense qu'elle sera appliquée et promue dans davantage de domaines.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment mettre en œuvre une salle de discussion en ligne en utilisant le langage Go et Redis Comment mettre en œuvre une salle de discussion en ligne en utilisant le langage Go et Redis Oct 27, 2023 pm 03:28 PM

Comment mettre en œuvre une salle de discussion en ligne en utilisant le langage Go et Redis

Comment mettre en œuvre une salle de discussion en ligne simple en utilisant PHP Comment mettre en œuvre une salle de discussion en ligne simple en utilisant PHP Sep 25, 2023 am 09:57 AM

Comment mettre en œuvre une salle de discussion en ligne simple en utilisant PHP

Partage d'expérience pratique d'application du protocole WebSocket dans les applications de vote en ligne Partage d'expérience pratique d'application du protocole WebSocket dans les applications de vote en ligne Oct 15, 2023 pm 12:28 PM

Partage d'expérience pratique d'application du protocole WebSocket dans les applications de vote en ligne

Compréhension approfondie des principes de fonctionnement et de l'application pratique du framework Struts Compréhension approfondie des principes de fonctionnement et de l'application pratique du framework Struts Jan 04, 2024 am 10:26 AM

Compréhension approfondie des principes de fonctionnement et de l'application pratique du framework Struts

Mar 22, 2024 pm 09:42 PM

Utilisez la fonction d'indentation par lots de PyCharm pour améliorer la standardisation du code Utilisez la fonction d'indentation par lots de PyCharm pour améliorer la standardisation du code Dec 30, 2023 am 11:38 AM

Utilisez la fonction d'indentation par lots de PyCharm pour améliorer la standardisation du code

Analyse des standards web courants et de leurs cas concrets Analyse des standards web courants et de leurs cas concrets Jan 13, 2024 pm 03:50 PM

Analyse des standards web courants et de leurs cas concrets

Variables PHP en action : 10 exemples concrets d'utilisation Variables PHP en action : 10 exemples concrets d'utilisation Feb 19, 2024 pm 03:00 PM

Variables PHP en action : 10 exemples concrets d'utilisation

See all articles