您的位置:首页 > 数据库 > Redis

Redis的订阅发布

2017-03-23 14:12 267 查看
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ServiceStack.Redis;
using ServiceStack.Common;
using System.Threading;
namespace RedisTest2
{
class Program
{

static void Main(string[] args)
{

Console.WriteLine("请输入发布订阅类型?");
var type = Console.ReadLine();
if (type == "pub")
{
Pub();
}
else
{
Sub();
}
}

public static void Pub()
{
using (IRedisClient publisher = new RedisClient("127.0.0.1", 6379))
{

while (true)
{
var msg = Console.ReadKey();
publisher.PublishMessage("c1", string.Format("这是我发送的第消息!{0}", DateTime.Now));
}

}

//using (IRedisClient publisher = new RedisClient("127.0.0.1", 6379))
//{
//    //for (int i = 1; i <= 100; i++)
//    //{
//    while (true)
//    {

//        publisher.PublishMessage("c1", string.Format("这是我发送的第消息!{0}", DateTime.Now));
//    }
//       // Thread.Sleep(200);
//   // }
//}
}

/// <summary>
/// 订阅
/// 一个客户端订阅c1
/// </summary>
public static void Sub()
{
using (var consumer = new RedisClient("127.0.0.1", 6379))
{
//创建订阅
IRedisSubscription subscription = consumer.CreateSubscription();

//接受到消息时的委托
subscription.OnMessage = (channel, msg) =>
{
Console.WriteLine("频道【" + channel + "】订阅客户端接收消息:" + ":" + msg + " [" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "]");
Console.WriteLine("订阅数:" + subscription.SubscriptionCount);
Console.WriteLine("___________________________________________________________________");
};

//订阅事件处理
subscription.OnSubscribe = channel => { Console.WriteLine("订阅客户端a:开始订阅" + channel); };

//取消订阅事件处理
subscription.OnUnSubscribe = a => { Console.WriteLine("订阅客户端:取消订阅"); };

//订阅频道
subscription.SubscribeToChannels("c1");

}
}

}
}


View Code
参考 http://blog.csdn.net/wulex/article/details/52712664
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: