Redis Pub/Sub不发布消息

本文关键字:消息 布消息 Pub Sub Redis | 更新日期: 2023-09-27 18:05:03

我正在使用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桌面管理器显示DB为空。

在redis命令行中,命令PUBSUB CHANNELS显示下一个结果,这意味着通道存在:

  1. "任务"
  2. "__Booksleeve_MasterChanged"

另外,我把字符串推到DB,它是成功的:

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

有什么想法或建议吗?

Redis Pub/Sub不发布消息

除非在using语句结束时阻塞客户端,否则订阅者的连接将被处理。因此,在using语句之后,您的客户端将不会收到任何pubsub消息。