Position actuelle: Accueil> Derniers articles> Un tutoriel complet sur l'implémentation de la fonction de chat en temps réel de l'applet WeChat en PHP (avec exemples de code)

Un tutoriel complet sur l'implémentation de la fonction de chat en temps réel de l'applet WeChat en PHP (avec exemples de code)

M66 2025-10-16

Tutoriel sur l'implémentation de la fonction de chat en temps réel de l'applet WeChat en PHP

Avec l'utilisation généralisée des mini-programmes WeChat, de plus en plus de développeurs espèrent implémenter des fonctions de messagerie instantanée dans leurs propres mini-programmes. En tant que fonctionnalité sociale importante, le chat en temps réel peut non seulement améliorer l'expérience d'interaction des utilisateurs, mais également rendre les applications plus fluides. Cet article explique comment utiliser les protocoles PHP et WebSocket pour implémenter la fonction de chat en temps réel de l'applet WeChat.

Aperçu des principes de mise en œuvre

Pour réaliser un chat en temps réel, le plus important est de permettre au client et au serveur de maintenir une communication en temps réel. Les requêtes HTTP traditionnelles sont ponctuelles, tandis que le protocole WebSocket prend en charge la communication en duplex intégral sur une seule connexion TCP, ce qui signifie que le client et le serveur peuvent envoyer activement des messages.

En PHP, vous pouvez utiliser la bibliothèque Ratchet pour implémenter facilement un serveur WebSocket. Grâce à Ratchet, nous pouvons gérer les connexions, traiter les messages, diffuser des données et mettre en place un système de discussion stable.

Configurer l'environnement d'exécution PHP

Tout d’abord, vous devez préparer un environnement serveur pouvant exécuter PHP, vous pouvez utiliser Apache ou Nginx. Après avoir installé Composer, installez la bibliothèque Ratchet avec la commande suivante :

 <span class="fun">le compositeur nécessite cboden/ratchet</span>

Créer un serveur WebSocket

Créez un fichier nommé chat_server.php dans le projet pour démarrer le service WebSocket. L'exemple de code est le suivant :

 require 'vendor/autoload.php';
use Ratchet\MessageComponentInterface;
use Ratchet\ConnectionInterface;

class ChatServer implements MessageComponentInterface {
   protected $clients;

   public function __construct() {
      $this->clients = new \SplObjectStorage;
   }

   public function onOpen(ConnectionInterface $conn) {
      $this->clients->attach($conn);
   }

   public function onMessage(ConnectionInterface $from, $msg) {
      $data = json_decode($msg, true);
      foreach ($this->clients as $client) {
         $client->send(json_encode($data));
      }
   }

   public function onClose(ConnectionInterface $conn) {
      $this->clients->detach($conn);
   }

   public function onError(ConnectionInterface $conn, \Exception $e) {
      $conn->close();
   }
}

$server = \Ratchet\Server\IoServer::factory(
   new \Ratchet\Http\HttpServer(
      new \Ratchet\WebSocket\WsServer(
         new ChatServer()
      )
   ),
   8080
);
$server->run();

Après avoir exécuté ce fichier, un serveur WebSocket écoutera le port 8080, en attendant les connexions de l'applet WeChat.

Le mini programme implémente la connexion WebSocket

Dans l'applet WeChat, vous pouvez utiliser la méthode wx.connectSocket pour vous connecter au serveur WebSocket et implémenter la logique d'envoi et de réception des messages :

 const socket = wx.connectSocket({
   url: 'ws://localhost:8080',
   success: function() {
      console.log('WebSocketConnexion réussie');
   }
});

socket.onOpen(function() {
   console.log('WebSocketLa connexion est ouverte');
   socket.send({
      message: 'Hello, WebSocket!'
   });
});

socket.onMessage(function(res) {
   console.log('message reçu:', res.data);
});

socket.onClose(function() {
   console.log('WebSocketconnexion fermée');
});

Grâce au code ci-dessus, l'applet peut interagir avec le serveur PHP en temps réel pour réaliser un chat en ligne multi-utilisateurs.

Traitement des messages et expansion des activités

Dans la méthode onMessage du serveur, le message envoyé par le client peut être traité selon la logique métier réelle, comme l'enregistrement dans la base de données, le filtrage du contenu sensible, l'identification des identités des utilisateurs, etc. Le message traité est ensuite diffusé à tous les clients connectés pour mettre en œuvre la fonction de discussion de groupe.

Résumer

Cet article présente le processus complet de création de la fonction de discussion en temps réel de l'applet WeChat à l'aide du protocole PHP et WebSocket. De la construction de l'environnement à l'implémentation de Ratchet côté serveur en passant par les exemples de connexion WebSocket frontale, les développeurs peuvent rapidement créer leur propre système de communication en temps réel basé sur cette idée. Grâce à une expansion commerciale raisonnable, davantage de fonctions telles que le chat privé, l'enregistrement de messages, l'affichage de l'état en ligne, etc. peuvent également être réalisées.