1. Configuration du Serveur avec Node.js et Socket.io
Commencez par installer Node.js et les dépendances nécessaires :
npm install express socket.io
Ensuite, configurez le serveur pour gérer les connexions WebSocket :
const express = require('express');
const http = require('http');
const { Server } = require('socket.io');
const app = express();
const server = http.createServer(app);
const io = new Server(server);
io.on('connection', (socket) => {
console.log('Nouvel utilisateur connecté');
socket.on('chat message', (msg) => {
io.emit('chat message', msg);
});
socket.on('disconnect', () => {
console.log('Utilisateur déconnecté');
});
});
server.listen(3000, () => {
console.log('Serveur en écoute sur le port 3000');
});
2. Création de l'Interface Client
Créez une page HTML pour l'interface utilisateur :
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Messagerie Instantanée</title>
<style>
#messages { list-style-type: none; }
#messages li { padding: 8px; margin-bottom: 10px; background-color: #f4f4f4; border-radius: 5px; }
</style>
</head>
<body>
<ul id="messages"></ul>
<form id="form" autocomplete="off">
<input id="input" placeholder="Entrez votre message..." required />
<button type="submit">Envoyer</button>
</form>
<script src="/socket.io/socket.io.js"></script>
<script>
const socket = io();
const form = document.getElementById('form');
const input = document.getElementById('input');
const messages = document.getElementById('messages');
form.addEventListener('submit', function(e) {
e.preventDefault();
if (input.value) {
socket.emit('chat message', input.value);
input.value = '';
}
});
socket.on('chat message', function(msg) {
const item = document.createElement('li');
item.textContent = msg;
messages.appendChild(item);
window.scrollTo(0, document.body.scrollHeight);
});
</script>
</body>
</html>
3. Gestion des Messages Privés
Pour permettre des conversations privées entre deux utilisateurs, vous pouvez implémenter des salles de discussion (rooms) ou identifier les utilisateurs par des identifiants uniques. Voici comment émettre des messages vers une salle spécifique :
socket.join('room1');
socket.to('room1').emit('chat message', msg);
4. Hébergement et Sécurité
Assurez-vous d'héberger votre application sur un serveur fiable et d'utiliser des protocoles sécurisés (comme HTTPS) pour protéger les données échangées.
Ressources Supplémentaires
Pour approfondir vos connaissances, vous pouvez consulter les ressources suivantes :
-
Tutoriel Vidéo : Réaliser un chat avec Socket.io et NodeJS
-
Article : Une messagerie instantanée full JavaScript et 100% dans le cloud
Commentaires
Enregistrer un commentaire