Maison > interface Web > js tutoriel > Création d'une application de discussion en temps réel avec WebSockets dans React

Création d'une application de discussion en temps réel avec WebSockets dans React

Susan Sarandon
Libérer: 2024-12-26 19:03:10
original
806 Les gens l'ont consulté

Building a Real-Time Chat Application with WebSockets in React

La communication en temps réel est devenue une fonctionnalité intégrante des applications Web modernes, en particulier dans les applications de chat. Les WebSockets offrent un moyen puissant de permettre une communication bidirectionnelle en temps réel entre un client et un serveur. Dans ce guide, nous expliquerons le processus de création d'une application de chat en temps réel à l'aide de WebSockets et React.

Prérequis
Avant de vous lancer, assurez-vous d'avoir les éléments suivants :

  • Compréhension de base de React.
  • Node.js installé sur votre machine.
  • Un gestionnaire de paquets comme npm ou Yarn.
  • Familiarité avec les concepts WebSocket.

Étape 1 : Configuration du backend
Nous avons besoin d'un serveur WebSocket pour gérer la communication en temps réel. Nous utiliserons Node.js avec le package ws.

  1. Initialiser un projet Node.js :
mkdir chat-backend  
cd chat-backend  
npm init -y  
Copier après la connexion
  1. Installez le package ws :
npm install ws 
Copier après la connexion
  1. Créez un serveur WebSocket :
// server.js  
const WebSocket = require('ws');  

const wss = new WebSocket.Server({ port: 8080 });  

wss.on('connection', (ws) => {
    console.log('Client connected');  

    ws.on('message', (message) => {
        console.log(`Received: ${message}`);  
        // Broadcast the message to all clients
        wss.clients.forEach((client) => {
            if (client.readyState === WebSocket.OPEN) {
                client.send(message);  
            }
        });
    });  

    ws.on('close', () => {
        console.log('Client disconnected');  
    });
});  

console.log('WebSocket server running on ws://localhost:8080');  
Copier après la connexion
  1. Exécutez le serveur :
node server.js
Copier après la connexion

Étape 2 : Configuration de l'interface React

  1. Créez une nouvelle application React :
npx create-react-app chat-frontend  
cd chat-frontend  
Copier après la connexion
  1. Installer les dépendances pour WebSocket : Aucune dépendance supplémentaire n'est requise car l'API WebSocket native du navigateur sera utilisée.

Étape 3 : Création de l'interface de discussion

  1. Créez un composant Chat :
// src/components/Chat.js  
import React, { useState, useEffect, useRef } from 'react';  

const Chat = () => {
    const [messages, setMessages] = useState([]);  
    const [input, setInput] = useState('');  
    const ws = useRef(null);  

    useEffect(() => {
        ws.current = new WebSocket('ws://localhost:8080');  

        ws.current.onmessage = (event) => {
            setMessages((prev) => [...prev, event.data]);  
        };  

        return () => {
            ws.current.close();  
        };
    }, []);  

    const sendMessage = () => {
        if (input.trim()) {
            ws.current.send(input);  
            setInput('');  
        }
    };  

    return (
        <div>



<ol>
<li>Use the Chat component in your App.js:
</li>
</ol>

<pre class="brush:php;toolbar:false">import React from 'react';  
import Chat from './components/Chat';  

function App() {
    return <Chat />;  
}  

export default App;  
Copier après la connexion
  1. Démarrez l'application React :
npm start  
Copier après la connexion

Étape 4 : tester l'application

  • Ouvrez votre application React dans plusieurs onglets ou appareils.
  • Commencez à saisir des messages dans un seul onglet et observez-les apparaître en temps réel sur tous les clients connectés !

Améliorations supplémentaires
Pour préparer l'application pour la production, pensez à :

  • Ajout de l'authentification utilisateur pour les messages personnalisés.
  • Intégration d'une base de données pour stocker l'historique des discussions.
  • Déploiement du serveur WebSocket et de l'application React sur des plateformes comme Vercel, Heroku ou AWS.

Conclusion
En tirant parti des WebSockets, nous avons créé une application de chat légère en temps réel à l'aide de React. Ce projet démontre la puissance des WebSockets pour la communication dynamique, utile dans diverses applications telles que les plateformes de messagerie, les jeux et les notifications en direct. Plongez plus profondément dans les protocoles WebSocket pour améliorer davantage votre application !

Bon codage ! ?

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!

source:dev.to
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal