Le salon de discussion nodejs est-il facile à écrire ?

WBOY
Libérer: 2023-05-11 19:38:05
original
444 Les gens l'ont consulté

Salle de discussion Node.js : mise en œuvre étape par étape

La salle de discussion est une application très utile en termes d'interaction en temps réel et d'expérience utilisateur. Dans la technologie de développement Web moderne, l'utilisation de Node.js peut rapidement créer une salle de discussion efficace en temps réel, et l'effet est très bon. Cet article expliquera la mise en œuvre du salon de discussion Node.js, explorera pourquoi il est si courant et comment le créer.

Nous avons besoin d'un langage de programmation que le serveur et le client peuvent utiliser, dans ce cas nous considérons Node.js. Node.js présente de nombreux avantages par rapport à d'autres langages backend comme PHP ou Java, le plus important étant qu'il est conçu pour être piloté par des événements. Cela permet de mieux gérer un grand nombre de connexions simultanées et permet un traitement rapide des données dans les applications en temps réel.

Prérequis

La première étape de la création d'un salon de discussion Node.js consiste à installer Node.js et npm (gestionnaire de packages Node.js). Ouvrez un terminal et entrez la commande suivante :

    $ sudo apt-get update
    $ sudo apt-get install nodejs
    $ sudo apt-get install npm
Copier après la connexion

Nous utiliserons npm pour installer les 3 modules suivants :

• socket.io : Facilite l'utilisation des web sockets.

• express : pour le développement d'applications web.

• nodemon : utilisé pour surveiller les applications et les redémarrer lorsque des changements se produisent.

Exécutez la commande suivante pour les installer :

    $ sudo npm install socket.io express nodemon
Copier après la connexion

Nous sommes maintenant prêts à commencer à créer la salle de discussion à l'aide de Node.js.

1. Créer un serveur Web

La première étape dans la salle de discussion Node.js consiste à créer un serveur Web pour écouter le port spécifié, nous pouvons faire ceci :

    const app = require('express')();
    const server = require('http').Server(app);
    const io = require('socket.io')(server);

    app.get('/', (req, res) => {
        res.sendFile(__dirname + '/index.html');
    });

    server.listen(3000, () => {
        console.log('listening on *:3000');
    });
Copier après la connexion

Le code utilise d'abord le express< Module /code> Créez un serveur HTTP, puis utilisez le module <code>socket.io pour créer un serveur de socket Web, et enfin laissez le serveur écouter sur le port 3000 pour s'exécuter sur le navigateur. La méthode app.get() permet d'afficher le fichier index.html dans le navigateur. express模块创建一个HTTP服务器,然后使用socket.io模块创建Web套接字服务器,最后将服务器侦听端口3000以便在浏览器上运行。app.get()方法用于在浏览器中显示index.html文件。

2.在客户端上打开连接

浏览器连接到服务器上的Web套接字,经过两个步骤:

a.在HTML引用socket.io

在HTML文件中添加以下两行代码,以便能够引用socket.io-client

    <script src="/socket.io/socket.io.js"></script>
    <script src="/main.js"></script>
Copier après la connexion

b.在客户端上打开连接

打开一个WebSocket连接,以便客户端能够连接到服务器上的套接字。代码如下:

    const socket = io();
Copier après la connexion

我们将连接到Node.js服务器并返回未定型的WebSocket,这样我们就可以开始通过套接字发送和接收消息。

  1. 实现向某个房间发送消息

现在我们的服务器已经准备好接收终端之间的连接。接下来,我们将看看如何像特定房间的连接发送消息。

    socket.on('join', (room) => {
        socket.join(room);
    });

    socket.on('message', (msg, room) => {
        socket.to(room).emit('message', msg);
    });
Copier après la connexion

代码中,我们在服务器上使用套接字的.join()方法来加入指定房间。当客户端发送'join'消息时,服务器将执行此操作。然后,服务器使用.to()

2. Ouvrez la connexion sur le client

Le navigateur se connecte au socket web sur le serveur, après deux étapes :
  1. a Référence socket.io dans le HTML
Ajoutez les deux lignes de code suivantes dans le HTML. file , pour pouvoir référencer socket.io-client :

    socket.emit('message', 'Hello World', 'room1');
Copier après la connexion

b Ouvrir une connexion sur le client

Ouvre une connexion WebSocket pour que le client puisse se connecter au socket sur le serveur. Le code est le suivant :

    const users = {};

    socket.on('new-connection', () => {
        users[socket.id] = { name: `User ${Math.floor(Math.random() * 1000)}` };
        socket.broadcast.emit('user-connected', users[socket.id]);
    });

    socket.on('chat-message', (msg) => {
        socket.broadcast.emit('chat-message', { message: msg, name: users[socket.id].name });
    });

    socket.on('disconnect', () => {
        socket.broadcast.emit('user-disconnected', users[socket.id]);
        delete users[socket.id];
    });
Copier après la connexion

Nous allons nous connecter au serveur Node.js et renvoyer un WebSocket non finalisé afin que nous puissions commencer à envoyer et recevoir des messages via le socket.

    Mise en œuvre de l'envoi de messages vers une certaine salle

    Maintenant, notre serveur est prêt à recevoir des connexions entre terminaux. Ensuite, nous verrons comment envoyer des messages à une connexion de salle spécifique.

        $ nodemon index.js
    Copier après la connexion

    Dans le code, nous utilisons la méthode .join() du socket sur le serveur pour rejoindre la salle spécifiée. Le serveur le fera lorsque le client enverra un message « rejoindre ». Le serveur utilise ensuite la méthode .to() pour diffuser le message à tous les utilisateurs de la salle cible.

    🎜Cela peut être fait avec la commande suivante pour envoyer des messages : 🎜rrreee🎜🎜Chat de groupe🎜🎜🎜L'étape suivante consiste à ajouter une discussion de groupe au serveur. La façon dont nous y parvenons est la suivante : 🎜rrreee🎜 Tout d'abord, nous créons une variable appelée "users" qui stockera chaque utilisateur connecté au serveur. Lorsqu'un utilisateur se connecte au serveur, l'objet qui lui correspond est stocké dans la variable "users" et un message "user-connected" est diffusé à tous les autres utilisateurs, qui délivrent la variable "users" au nouvel utilisateur. 🎜🎜Lorsque les utilisateurs envoient des messages au serveur, ces messages sont diffusés à tous les autres utilisateurs, y compris l'expéditeur d'origine. Lorsqu'un utilisateur se déconnecte, l'événement "user-disconnected" est diffusé et l'utilisateur correspondant est supprimé de la variable "users". 🎜🎜Nous sommes maintenant prêts à déployer le salon de discussion Node.js. Nous pouvons afficher la salle de discussion dans notre navigateur local en exécutant la commande suivante : 🎜rrreee🎜Conclusion🎜🎜Dans cet article, nous avons appris comment créer une application de discussion en temps réel à l'aide de Node.js et socket.io. Nous avons commencé par créer un serveur web puis avons vu comment ouvrir une connexion sur le client et envoyer un message vers une salle spécifique. Nous avons ajouté une fonctionnalité de discussion de groupe qui permet à tous les utilisateurs connectés au serveur de s'envoyer des messages. 🎜🎜Node.js fournit d'excellents outils et bibliothèques qui facilitent la mise en œuvre de fonctionnalités Web en temps réel entre le côté client et le côté serveur. De plus, socket.io fournit des fonctionnalités qui facilitent sa gestion. Nous espérons que cet article vous a aidé à commencer à créer des applications de chat avec Node.js ! 🎜

    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:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!