问题描述
我读过一个关于在 StackExchange.Redis 文档中订阅和发布的示例,但我不明白。
为什么这个例子没有谈到发布?
var channel = multiplexer.GetSubscriber().Subscribe("messages");
channel.OnMessage(message =>
{
Console.WriteLine((string)message.Message);
});
如何在Dotnet Core项目中实现订阅和发布?
RedisChannel 是什么,谁能解释一下?
我喜欢这个:
RedisChannel channelWithLiteral = new RedisChannel("messages",RedisChannel.PatternMode.Literal);
和
RedisChannel channelWithLiteral = new RedisChannel("messages",RedisChannel.PatternMode.Literal);
var sub = connectionPoolManager.GetConnection().GetSubscriber();
sub.PublishAsync(channelWithLiteral,Serializer.Serialize(message));
Sub 和 Pub 项目。这是正确的吗?
解决方法
将 Redis 包添加到您的项目后(通过 StackExchange.Redis NuGet 包),您可以连接到您的 Redis 服务器(在本例中为本地):
using StackExchange.Redis;
ConnectionMultiplexer connection = ConnectionMultiplexer.Connect("localhost");
接下来,您应该使用 ISubscriber.Subscribe
订阅频道:
var subscriber = connection.GetSubscriber();
可以通过以下方式向任何频道发布消息:
subscriber.Publish("channle-name","This is a message");
最后,订阅同一个频道(可能来自另一个客户端)以接收通过您想要的频道发送的消息:
subscriber.Subscribe("channle-name",(channel,message) => {
Console.WriteLine((string)message);
});