亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Redis發布/訂閱

標簽:
大數據

摘要

有这样的一个场景,管理员需要发布一条消息,所有的客户端都要受到通知。然后想到了发布订阅模式。使用redis的发布与订阅实现起来更简单一些,说做就做,这里弄个简单的demo,先模拟下。

核心代码

首先使用Nuget安装redis程序集。

服务端发布消息webApi

向频道chanel-1 发送消息。

  public class MessageController : ApiController
   {
       [HttpGet]
       [Route("api/send/{msg}")]        public HttpResponseMessage SendMessage(string msg)
       {
           IRedisClientsManager clientManager = new PooledRedisClientManager("[email protected]:6379");            var client = clientManager.GetClient();
           client.PublishMessage("channel-1", msg);            return new HttpResponseMessage() { Content = new StringContent(JsonConvert.SerializeObject(new { _code = 200, _msg = "Success" })) };
       }

   }

订阅客户端代码


   class Program
   {        static void Main(string[] args)
       {
           Subscript();
           Console.Read();
       }        /// <summary>
       /// 订阅        /// </summary>
       public static void Subscript()
       {
           IRedisClientsManager clientManager = new PooledRedisClientManager("[email protected]:6379");            var client = clientManager.GetClient();        
           //创建订阅
           IRedisSubscription subscription = client.CreateSubscription();            //接收消息处理Action
           subscription.OnMessage = (channel, msg) =>
           {
               Console.WriteLine("频道【{0}】[{1}]", channel, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
               Console.WriteLine(msg);
           };            //订阅事件处理
           subscription.OnSubscribe = (channel) =>
           {
               Console.WriteLine("订阅客户端:开始订阅" + channel);
           };            //取消订阅事件处理
           subscription.OnUnSubscribe = (a) => { Console.WriteLine("订阅客户端:取消订阅"); };            //订阅频道
           subscription.SubscribeToChannels("channel-1");

       }


   }
}


测试

通过postman调用接口,开启订阅客户端。

订阅的客户端

结语

发现通过这种方式实现的发布与订阅还是很简单的。

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消