Redis Pub / Sub不发布消息

时间:2016-09-01 09:43:15

标签: c# .net redis stackexchange.redis

我正在使用RedEx的StackExchange.Redis .NET客户端(安装在Windows 7上)。 主机名 - 127.0.0.1,端口 - 6379

订阅者:

using (var connection = ConnectionMultiplexer.Connect(string.Format("{0}:{1},abortConnect=false,ConnectTimeout=10000", m_HostName, m_Port)))
{
   var sub = connection.GetSubscriber();
   sub.Subscribe("tasks", (channel, value) =>
   {
      // processing
   });
}

发布者:

using (var connection = ConnectionMultiplexer.Connect(string.Format("{0}:{1},abortConnect=false,ConnectTimeout=10000", m_HostName, m_Port)))
{
   var subscriber = connection.GetSubscriber();
   Logger.Debug(subscriber.IsConnected().ToString());
   subscriber.Publish("tasks", message);
}

在日志中,我可以看到订户已连接,此行没有例外:

subscriber.Publish("tasks", message); 

但订阅者没有收到任何消息,Redis Desktop Manager显示数据库为空。

在redis cli中,命令PUBSUB CHANNELS显示下一个结果,表示该通道存在:

  1. "任务"
  2. " __ Booksleeve_MasterChanged"
  3. 另外,我将字符串推送到DB并且成功了:

    var db = connection.GetDatabase();
    db.StringSet("key","message");
    

    有任何想法或建议吗?

1 个答案:

答案 0 :(得分:0)

除非您在使用声明结束时阻止您的客户,否则您的订户的连接将被处理。因此,您的客户在使用声明后不会收到任何pubsub消息。