0
我使用Redis的StackExchange.Redis .NET客戶端(安裝在Windows 7上)。 主機名 - 127.0.0.1,端口 - 6379Redis Pub/Sub不發佈消息
認購人:
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 Deskto P Manager顯示數據庫爲空。
在redis的CLI的命令發佈訂閱CHANNELS顯示下一個結果,這意味着,信道存在:
- 「任務」
- 「__Booksleeve_MasterChanged」
另外,我推字符串DB和它是成功的:
var db = connection.GetDatabase();
db.StringSet("key","message");
任何想法或建議?
發佈沒有在數據庫中設置任何東西 - 它是預期的(除非啓用密鑰空間通知,否則db和pub/sub空間大多是不同的)。你確定你是在發佈商之前開始你的訂閱嗎?如果發佈者在訂閱者註冊之前發送數據,您將不會收到有關以前值的通知(redis pub/sub是僅更新的,沒有初始圖像)。 –