Maison développement back-end tutoriel php Fonctions de discussion de groupe et de discussion privée du système de discussion en temps réel basé sur PHP

Fonctions de discussion de groupe et de discussion privée du système de discussion en temps réel basé sur PHP

Aug 27, 2023 pm 02:43 PM
chat en direct php Discussion de groupe Chat privé

Fonctions de discussion de groupe et de discussion privée du système de discussion en temps réel basé sur PHP

Fonctions de discussion de groupe et de discussion privée du système de discussion en temps réel basé sur PHP

Avec le développement d'Internet, les systèmes de discussion en temps réel deviennent de plus en plus importants dans notre vie quotidienne. Que vous discutiez avec des amis sur les réseaux sociaux ou que vous communiquiez avec des collègues de travail, les systèmes de chat en direct jouent un rôle important. Cet article explique comment utiliser PHP pour développer un système basé sur le chat en temps réel prenant en charge les fonctions de chat de groupe et de chat privé.

Tout d'abord, nous devons configurer un serveur pour gérer les demandes de chat en temps réel. Nous utilisons PHP et WebSocket pour implémenter cette fonctionnalité. WebSocket est un protocole basé sur TCP qui permet une communication en duplex intégral entre le navigateur et le serveur. En PHP, on peut utiliser la bibliothèque Ratchet pour créer un serveur WebSocket.

Tout d'abord, nous devons installer la bibliothèque Ratchet. Exécutez la commande suivante dans le terminal :

composer require cboden/ratchet
Copier après la connexion

Une fois l'installation terminée, nous pouvons créer un fichier appelé server.php et y écrire le code suivant : server.php的文件,并在其中编写以下代码:

<?php
require 'vendor/autoload.php';

use RatchetMessageComponentInterface;
use RatchetConnectionInterface;
use RatchetWebSocketWsServer;
use RatchetHttpHttpServer;
use RatchetServerIoServer;
use RatchetWampWampServerProtocol;

class Chat implements MessageComponentInterface
{
    protected $clients;

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

    public function onOpen(ConnectionInterface $conn)
    {
        $this->clients->attach($conn);
        echo "New connection! ({$conn->resourceId})
";
    }

    public function onMessage(ConnectionInterface $from, $msg)
    {
        // 处理客户端发送的消息
        $data = json_decode($msg);
        $type = $data->type;

        switch ($type) {
            case 'register':
                $from->username = $data->username;
                echo "User registered: " . $from->username . "
";
                break;
            case 'group':
                $message = $data->message;
                $this->broadcastMessage($from, $message);
                break;
            case 'private':
                $recipient = $data->recipient;
                $message = $data->message;
                $this->sendPrivateMessage($from, $recipient, $message);
                break;
        }
    }

    public function onClose(ConnectionInterface $conn)
    {
        $this->clients->detach($conn);
        echo "Connection {$conn->resourceId} has disconnected
";
    }

    public function onError(ConnectionInterface $conn, Exception $e)
    {
        echo "An error has occurred: {$e->getMessage()}
";
        $conn->close();
    }

    public function broadcastMessage($from, $message)
    {
        foreach ($this->clients as $client) {
            if ($client !== $from) {
                $client->send($message);
            }
        }
    }

    public function sendPrivateMessage($from, $recipient, $message)
    {
        foreach ($this->clients as $client) {
            if ($client->username == $recipient) {
                $client->send($message);
                $from->send($message);
                break;
            }
        }
    }
}

$server = IoServer::factory(
    new HttpServer(
        new WsServer(
            new Chat()
        )
    ),
    8080
);

$server->run();
Copier après la connexion

在上述代码中,我们创建了一个名为Chat的类来处理连接、发送消息和关闭连接等操作。在onMessage方法中,我们根据消息类型来执行不同的操作。如果类型是register,表示有用户注册连接;如果类型是group,表示有用户发送群组消息;如果类型是private,表示有用户发送私聊消息。我们使用broadcastMessage方法来广播群组消息,使用sendPrivateMessage方法来发送私聊消息。

接下来,我们可以创建一个名为index.html的文件,并在其中编写以下代码:

<!DOCTYPE html>
<html>
<head>
    <title>Chat</title>
</head>
<body>
    <input type="text" id="username" placeholder="Username"><br>
    <input type="text" id="message" placeholder="Message"><br>
    <button onclick="register()">Register</button>
    <button onclick="sendGroupMessage()">Send Group Message</button>
    <button onclick="sendPrivateMessage()">Send Private Message</button>

    <script>
        var conn = new WebSocket('ws://localhost:8080');

        conn.onopen = function(e) {
            console.log("Connection established!");
        };

        conn.onmessage = function(e) {
            var chatbox = document.getElementById("chatbox");
            chatbox.innerHTML += e.data + "<br>";
        };

        function register() {
            var username = document.getElementById("username").value;
            var data = {
                type: 'register',
                username: username
            };
            conn.send(JSON.stringify(data));
        }

        function sendGroupMessage() {
            var message = document.getElementById("message").value;
            var data = {
                type: 'group',
                message: message
            };
            conn.send(JSON.stringify(data));
        }

        function sendPrivateMessage() {
            var recipient = document.getElementById("username").value;
            var message = document.getElementById("message").value;
            var data = {
                type: 'private',
                recipient: recipient,
                message: message
            };
            conn.send(JSON.stringify(data));
        }
    </script>
</body>
</html>
Copier après la connexion

在上述代码中,我们创建了一个WebSocket连接并注册了连接的回调函数。在register函数中,我们将用户名发送到服务器以进行注册。在sendGroupMessage函数中,我们将群组消息发送到服务器,服务器会将消息广播给所有用户。在sendPrivateMessage函数中,我们将私聊消息发送给指定用户。

现在,我们可以在终端中运行php server.php命令来启动服务器。然后,我们可以在浏览器中打开index.htmlrrreee

Dans le code ci-dessus, nous create Une classe nommée Chat est créée pour gérer des opérations telles que la connexion, l'envoi de messages et la fermeture des connexions. Dans la méthode onMessage, nous effectuons différentes opérations en fonction du type de message. Si le type est register, cela signifie qu'un utilisateur a enregistré une connexion ; si le type est group, cela signifie qu'un utilisateur a envoyé un message de groupe si le type est ; est privé, indique qu'un utilisateur a envoyé un message privé. Nous utilisons la méthode broadcastMessage pour diffuser des messages de groupe et la méthode sendPrivateMessage pour envoyer des messages privés.


Ensuite, nous pouvons créer un fichier appelé index.html et y écrire le code suivant :

rrreee🎜Dans le code ci-dessus, nous créons une connexion WebSocket et enregistrons la fonction de rappel de la connexion. Dans la fonction register, nous envoyons le nom d'utilisateur au serveur pour enregistrement. Dans la fonction sendGroupMessage, nous envoyons le message de groupe au serveur, et le serveur diffusera le message à tous les utilisateurs. Dans la fonction sendPrivateMessage, nous envoyons le message privé à l'utilisateur spécifié. 🎜🎜Maintenant, nous pouvons exécuter la commande php server.php dans le terminal pour démarrer le serveur. Ensuite, nous pouvons ouvrir le fichier index.html dans le navigateur, saisir le nom d'utilisateur et cliquer sur le bouton d'enregistrement. Ensuite, nous pouvons saisir un message et cliquer sur le bouton Envoyer pour avoir une discussion de groupe ou une discussion privée. Le serveur diffuse le message correspondant aux autres utilisateurs ou l'envoie à un utilisateur spécifié. 🎜🎜Résumé : 🎜Cet article explique comment utiliser PHP et WebSocket pour développer un système de discussion en temps réel et implémenter des fonctions de discussion de groupe et de discussion privée. En créant et en communiquant avec un serveur WebSocket, nous sommes en mesure d'obtenir et d'envoyer des messages d'autres utilisateurs en temps réel. Avec un simple exemple de code, nous avons implémenté un système de discussion de base en temps réel. En étendant le code, nous pouvons implémenter davantage de fonctions, telles que l'ajout de la vérification des utilisateurs, le stockage des enregistrements de discussion, etc. 🎜

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

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)

L'hôte peut-il voir les messages de discussion privés dans les réunions Tencent ? L'hôte peut-il voir les messages de discussion privés dans les réunions Tencent ? Feb 18, 2024 am 11:12 AM

Les discussions privées de Tencent Meeting peuvent-elles être vues par l'hôte ? Avec l'essor du travail à distance et des réunions en ligne, divers outils de visioconférence sont devenus de plus en plus populaires. En tant que l'un des principaux outils de vidéoconférence en Chine, Tencent Conference a toujours attiré beaucoup d'attention. L'une des fonctionnalités importantes est le chat privé, qui permet aux participants de communiquer en privé pendant la réunion. Cependant, de nombreuses personnes s’inquiètent de savoir si le contenu des discussions privées sera vu par le modérateur. Cet article analysera le mécanisme de la fonction de chat privé de conférence de Tencent et répondra à cette question. Tout d'abord, nous devons comprendre les opérations de base du chat privé des réunions Tencent.

L'hôte du chat privé de la conférence Tencent peut-il le voir ? L'hôte du chat privé de la conférence Tencent peut-il le voir ? Feb 20, 2024 pm 04:06 PM

L'hôte du chat privé de la conférence Tencent peut-il le voir ? Avec le développement de la technologie, les conférences en ligne sont devenues un moyen important pour les personnes modernes de travailler, d'étudier et de communiquer. Parmi les nombreuses plateformes de conférence en ligne, Tencent Conference est populaire parmi les utilisateurs pour sa stabilité, sa facilité d'utilisation et ses fonctions riches. Lors d'une réunion Tencent, il est parfois nécessaire d'avoir une conversation privée ou une communication privée avec l'hôte (ou d'autres participants). Ainsi, lors de discussions privées dans des réunions Tencent, l'hôte peut-il voir le contenu de ces discussions privées ? C’est une question qui préoccupe de nombreux utilisateurs. premièrement, je

Comment discuter en privé sur Xianyu ? Liste des méthodes pour discuter en privé avec les vendeurs ? Comment discuter en privé sur Xianyu ? Liste des méthodes pour discuter en privé avec les vendeurs ? Mar 12, 2024 pm 03:00 PM

Lorsque nous utilisons cette plateforme, nous pouvons tous faire de meilleurs choix, surtout lorsque nous connaissons les détails des produits que nous souhaitons, nous pouvons discuter entre nous en privé. Ces méthodes sont relativement simples, alors ne vous inquiétez pas, ne paniquez pas. Certaines méthodes de chat privé sont relativement simples. Nous utilisons généralement ces méthodes directement pour comprendre les détails des produits ou négocier. Cependant, il s'agit également de résoudre toutes sortes de doutes afin de vous apporter des choix de contenu correspondants. aujourd'hui, l'éditeur vous expliquera comment mener une discussion privée. Les amis qui ne le savent pas encore ne doivent pas le manquer. Dépêchez-vous et jetez un œil avec l'éditeur, ne le manquez pas.​

Comment récupérer les enregistrements supprimés des discussions privées TikTok Comment récupérer les enregistrements supprimés des discussions privées TikTok May 07, 2024 am 11:00 AM

1. Après avoir supprimé l'historique des discussions par messages privés de Douyin, il est généralement impossible de le restaurer directement. 2. Cependant, vous pouvez contacter le responsable de Douyin pour essayer de communiquer la possibilité de récupération. 3. Ouvrez l'application Douyin, accédez à la page « Moi », cliquez sur les trois barres horizontales dans le coin supérieur droit et sélectionnez « Paramètres » > « À propos de Douyin ». 4. Recherchez et appelez la « Hotline du service client » ou contactez le responsable de Douyin par e-mail officiel pour vous renseigner sur la possibilité de restaurer les enregistrements de discussion.

Utilisation de PHP pour implémenter des journaux de comportement et des enregistrements d'opérations de la fonction de chat en temps réel Utilisation de PHP pour implémenter des journaux de comportement et des enregistrements d'opérations de la fonction de chat en temps réel Aug 26, 2023 pm 06:34 PM

Journaux de comportement et enregistrements d'opérations utilisant PHP pour implémenter la fonction de chat en temps réel Introduction : La fonction de chat en temps réel est devenue l'une des fonctionnalités standard de nombreux sites Web et applications. Cependant, pour garantir la stabilité et la sécurité du système de chat, il est nécessaire d'enregistrer les comportements et les opérations des utilisateurs à des fins de dépannage et de suivi des utilisateurs. Cet article explique comment utiliser PHP pour implémenter des journaux de comportement et des enregistrements d'opérations de fonctions de chat en temps réel. Nous utiliserons un exemple simple pour illustrer le processus de mise en œuvre spécifique. Étape 1 : Configurer la base de données. Tout d'abord, nous devons créer une base de données pour stocker les journaux de comportement.

Utilisez PHP pour implémenter des messages planifiés et des tâches planifiées pour la fonction de chat en temps réel Utilisez PHP pour implémenter des messages planifiés et des tâches planifiées pour la fonction de chat en temps réel Aug 26, 2023 am 09:28 AM

Utilisez PHP pour implémenter des messages planifiés et des tâches planifiées pour la fonction de chat en temps réel Avec le développement rapide d'Internet, la communication en temps réel est devenue un moyen important de communication. Afin d'enrichir l'expérience interactive des utilisateurs, de nombreux sites Web et applications ont ajouté des fonctions de chat en temps réel. Cet article explique comment utiliser PHP pour implémenter des messages planifiés et des tâches planifiées dans la fonction de chat en temps réel. 1. Mise en œuvre des messages planifiés Les messages planifiés font référence à l'envoi de messages à des utilisateurs spécifiés à des moments spécifiés. PHP peut utiliser des minuteries pour réaliser cette fonction. Vous trouverez ci-dessous un exemple de code simple

Comment envoyer un message privé au vendeur à Zhuanzhuan Comment envoyer un message privé au vendeur à Zhuanzhuan Comment envoyer un message privé au vendeur à Zhuanzhuan Comment envoyer un message privé au vendeur à Zhuanzhuan Mar 26, 2024 am 09:41 AM

Les fonctions ici sont super puissantes et vous pouvez vous connecter directement à votre compte pour les utiliser. Il existe de nombreux types de produits ici, vous pouvez donc choisir à volonté et trouver vos trésors préférés, bien sûr, certains des vôtres. choisissez également de publier les articles inutilisés à vendre, ce qui est très pratique et peut répondre aux besoins de chacun. Bien sûr, si vous voyez de meilleurs produits, vous souhaiterez envoyer un message privé au vendeur pour avoir des discussions sur les produits. vous aider à améliorer ces produits, et pour les amis qui ne savent pas comment envoyer des messages privés aux vendeurs, jetons un coup d'œil à la méthode suivante. Méthodes d'envoi de messages privés aux vendeurs à Zhuanzhuan : 1. Ouvrez d'abord Zhuanzhuan 2. Cliquez sur le champ de recherche, entrez le pseudo de l'utilisateur, sélectionnez l'utilisateur et recherchez 3. Entrez sa page d'accueil personnelle

Utilisez PHP pour implémenter le chat anonyme et la transmission cryptée de la fonction de chat en temps réel Utilisez PHP pour implémenter le chat anonyme et la transmission cryptée de la fonction de chat en temps réel Aug 14, 2023 pm 04:34 PM

Utilisation de PHP pour réaliser un chat anonyme et une transmission cryptée de la fonction de chat en temps réel Avec le développement d'Internet, le mode de communication entre les personnes a également subi des changements bouleversants. Parmi eux, la fonction de chat en direct est devenue une méthode de communication de plus en plus populaire. Pour de nombreux sites Web, fournir des fonctions de chat anonyme peut inciter davantage d’utilisateurs à participer, mais la sécurité et la confidentialité des informations des utilisateurs doivent également être prises en considération. Cet article explorera comment utiliser PHP pour implémenter le chat anonyme et la transmission cryptée de la fonction de chat en temps réel, et fournira des exemples de code pour référence. 1. Le chat anonyme est implémenté dans Anonyme

See all articles