gpt4 book ai didi

c# - Redis Pub/Sub 不发布消息

转载 作者:可可西里 更新时间:2023-11-01 11:32:07 24 4
gpt4 key购买 nike

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

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

  1. “任务”
  2. “__Booksleeve_MasterChanged”

此外,我将字符串推送到数据库并且成功:

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

有什么想法或建议吗?

最佳答案

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

关于c# - Redis Pub/Sub 不发布消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39268075/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com