redis的功能非常非常的强大,当做通讯的话,绰绰有余,安装问题请参考之前的文章,c#中使用redis。
1.建立winform项目,在nuget中安装StackExchange.Redis
2.创建聊天的界面
3.代码
using ServiceStack.Redis;
using StackExchange.Redis;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace redis
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("127.0.0.1:6379");//如果没有密码就直接写ip地址和端口
ISubscriber sub = null;
private void button1_Click(object sender, EventArgs e)
{
//sub.Publish("AA", textBox1.Text.ToString()); //向AA频道发送消息
sub.Publish("AA", textBox2.Text + "对" + textBox3.Text + "说:" + textBox1.Text);
}
private void Form1_Load(object sender, EventArgs e)
{
sub = redis.GetSubscriber(); //连接服务器
sub.Subscribe("AA"); //订阅AA频道
sub.Subscribe("AA", (channel, message) =>
{
listBox1.Items.Add(message); //接收AA频道发送的消息
});
}
}
}
这里说一下原理,2个人通信的话,就是建立一个频道,这里的AA相当于频道,多人聊天的话,都加入这个频道中,那么这个频道中的消息,所有订阅的人都可以接收到发布的消息。
4.效果展示,这里分别启动2个exe程序,可以实现实时通信的功能。