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 :
2. Configuration du projet
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
对象,该对象用于发布和订阅消息。
四、实现发布和订阅
实现发布消息功能:
static void PublishMessage(ISubscriber subscriber) { Console.WriteLine("请输入消息内容:"); string message = Console.ReadLine(); subscriber.Publish("chatroom", message); }
以上代码中,我们通过Console.ReadLine()
方法获取用户输入的消息内容,并使用subscriber.Publish()
方法将消息发布到名为"chatroom"的频道中。
实现订阅消息功能:
static void SubscribeMessage(ISubscriber subscriber) { subscriber.Subscribe("chatroom", (channel, message) => { Console.WriteLine($"收到新消息:{message}"); }); }
以上代码中,我们使用subscriber.Subscribe()
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".
subscriber.Subscribe()
pour nous abonner à la chaîne nommée "chatroom" et l'imprimer lorsque de nouveaux messages sont reçus. 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.
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!