Maison  >  Article  >  base de données  >  Créer une salle de discussion en temps réel à l'aide de Redis et C# : comment parvenir à une communication instantanée

Créer une salle de discussion en temps réel à l'aide de Redis et C# : comment parvenir à une communication instantanée

PHPz
PHPzoriginal
2023-07-30 22:03:181198parcourir

Créer une salle de discussion en temps réel à l'aide de Redis et C# : Comment parvenir à une communication instantanée

Introduction :
À l'ère d'Internet d'aujourd'hui, la messagerie instantanée est devenue un moyen de communication de plus en plus important. Qu’il s’agisse des réseaux sociaux, des jeux en ligne ou du service client en ligne, les salons de discussion en direct jouent un rôle important. Cet article expliquera comment utiliser Redis et C# pour créer une salle de discussion simple en temps réel et comprendre le mécanisme de messagerie basé sur le modèle de publication/abonnement.

1. Préparation
Avant de commencer, nous devons préparer quelques outils et environnements :

  1. Visual Studio : pour écrire et déboguer du code C#.
  2. Redis : utilisé pour stocker les messages dans les salons de discussion.
  3. StackExchange.Redis : bibliothèque C# pour interagir avec Redis.

2. Configuration du projet

  1. Créez un nouveau projet d'application console C#.
  2. Installez la bibliothèque StackExchange.Redis dans la console du gestionnaire de packages NuGet.

3. Connectez-vous à Redis
Dans la méthode Main à l'entrée du programme, nous devons d'abord établir une connexion avec Redis. Voici l'exemple de code :

using StackExchange.Redis;

class Program
{
    static void Main(string[] args)
    {
        ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost"); 
        ISubscriber subscriber = redis.GetSubscriber();

        // 接下来的代码将在后面的章节中逐步添加
    }
}

Dans le code ci-dessus, nous créons d'abord un objet ConnectionMultiplexer, qui est utilisé pour se connecter à Redis. Ensuite, nous utilisons la méthode GetSubscriber() pour créer un objet ISubscriber, qui est utilisé pour publier et s'abonner aux messages. ConnectionMultiplexer对象,该对象用于连接到Redis。然后,我们使用GetSubscriber()方法创建了一个ISubscriber对象,该对象用于发布和订阅消息。

四、实现发布和订阅

  1. 实现发布消息功能:

    static void PublishMessage(ISubscriber subscriber)
    {
     Console.WriteLine("请输入消息内容:");
     string message = Console.ReadLine();
    
     subscriber.Publish("chatroom", message);
    }

    以上代码中,我们通过Console.ReadLine()方法获取用户输入的消息内容,并使用subscriber.Publish()方法将消息发布到名为"chatroom"的频道中。

  2. 实现订阅消息功能:

    static void SubscribeMessage(ISubscriber subscriber)
    {
     subscriber.Subscribe("chatroom", (channel, message) =>
     {
         Console.WriteLine($"收到新消息:{message}");
     });
    }

    以上代码中,我们使用subscriber.Subscribe()

    4. Implémenter la publication et l'abonnement


Implémenter la fonction de publication des messages :

static void Main(string[] args)
{
    ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost");
    ISubscriber subscriber = redis.GetSubscriber();

    Console.WriteLine("欢迎来到实时聊天室!");

    Task.Run(() => SubscribeMessage(subscriber));

    while (true)
    {
        Console.WriteLine("请输入操作:1. 发布消息;2. 退出");
        string option = Console.ReadLine();

        switch (option)
        {
            case "1":
                PublishMessage(subscriber);
                break;
            case "2":
                return;
            default:
                Console.WriteLine("无效的操作,请重新输入!");
                break;
        }
    }
}

Dans le code ci-dessus, nous obtenons le contenu du message saisi par l'utilisateur via la méthode Console.ReadLine() , et utilisez subscriber.Publish() publie le message sur le canal nommé "chatroom".

    Implémentez la fonction de message d'abonnement :
  1. rrreee
  2. Dans le code ci-dessus, nous utilisons la méthode subscriber.Subscribe() pour nous abonner à la chaîne nommée "chatroom" et l'imprimer lorsque de nouveaux messages sont reçus.
  3. 5. Exécutez le salon de discussion
Intégrez les fonctions de publication et d'abonnement dans le projet :

rrreee
Dans le code ci-dessus, nous continuons à recevoir les opérations de l'utilisateur via une boucle while, et choisissons de publier le message ou de quitter le programme basé sur l'opération Fonction.

🎜6. Exécutez et testez🎜🎜🎜Exécutez le programme et entrez dans la salle de discussion en temps réel. 🎜🎜Entrez "1" puis saisissez le contenu du message que vous souhaitez publier. Les messages seront automatiquement publiés sur le canal « chatroom ». 🎜🎜Exécutez plusieurs instances sur la même machine et vous pourrez voir que le message sera diffusé à toutes les instances abonnés au canal "chatroom". 🎜🎜🎜Conclusion : 🎜Grâce à l'exemple simple ci-dessus, la structure de base de l'utilisation de Redis pour créer une salle de discussion en temps réel en C# a été complétée. Les lecteurs peuvent poursuivre le développement et l'optimisation sur la base de cette structure, comme l'ajout de l'authentification des utilisateurs, le stockage des enregistrements de discussion et d'autres fonctions. J'espère que cet article pourra vous aider à comprendre comment utiliser Redis et C# pour créer une salle de discussion en temps réel. 🎜

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:
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