ServiceStack RedisServerEvents 必须为客户端组件启动 RedisPubSub 服务器
ServiceStack RedisServerEvents must start RedisPubSub server even for a client component
ServiceStack RedisServerEvents 实现将服务器组件与客户端组件联系起来。没有办法只 运行 一个客户端组件
只需在 ServiceStack 服务器事件通道上发布消息而无需
启动整个 RedisPubSub 服务器,同时启动本地 MemoryServerEvents 服务器。
临时解决方法:
我将 'Publish'(NotifyChannel、NotifyUserId 等)的客户端实现代码复制到私有模块。
问题:
这是潜在的设计问题还是我没有正确使用 RedisServerEvents?
Redis Server Events is the back-end server component for hosting real-time SSE connections which enables ServiceStack Server Events to work across multiple load-balanced App Servers. The C# Server Events Client 是客户端组件,它允许您订阅 ServiceStack 服务器事件实例、加入频道、处理消息等。
目前还不清楚你到底想要什么,但如果你只是想通过 Redis 调用 ServiceStack 服务,你可能会寻找 Redis MQ,它与服务器事件完全分开,它可以让你发布请求 DTO 而无需需要在客户端配置服务器:
RedisMQ Client
客户端可以使用 RedisMessageProducer
来发布消息,例如:
var redisManager = new RedisManagerPool("localhost:6379");
using (var mqClient = new RedisMessageProducer(redisManager))
{
mqClient.Publish(new Hello { Name = "Client 1" });
}
或者,如果愿意,可以改用 RedisMessageFactory
,它提供对 IMessageQueueClient and IMessageProducer:
的访问
IMessageFactory redisMqFactory = new RedisMessageFactory(redisManager);
using (var mqClient = redisMqFactory.CreateMessageQueueClient())
{
mqClient.Publish(new Hello { Name = "Client 1" });
}
它仍然需要 Redis MQ Server to be started on the Server,但客户端只需要能够发布到 Redis 实例。
ServiceStack RedisServerEvents 实现将服务器组件与客户端组件联系起来。没有办法只 运行 一个客户端组件 只需在 ServiceStack 服务器事件通道上发布消息而无需 启动整个 RedisPubSub 服务器,同时启动本地 MemoryServerEvents 服务器。
临时解决方法: 我将 'Publish'(NotifyChannel、NotifyUserId 等)的客户端实现代码复制到私有模块。
问题: 这是潜在的设计问题还是我没有正确使用 RedisServerEvents?
Redis Server Events is the back-end server component for hosting real-time SSE connections which enables ServiceStack Server Events to work across multiple load-balanced App Servers. The C# Server Events Client 是客户端组件,它允许您订阅 ServiceStack 服务器事件实例、加入频道、处理消息等。
目前还不清楚你到底想要什么,但如果你只是想通过 Redis 调用 ServiceStack 服务,你可能会寻找 Redis MQ,它与服务器事件完全分开,它可以让你发布请求 DTO 而无需需要在客户端配置服务器:
RedisMQ Client
客户端可以使用 RedisMessageProducer
来发布消息,例如:
var redisManager = new RedisManagerPool("localhost:6379");
using (var mqClient = new RedisMessageProducer(redisManager))
{
mqClient.Publish(new Hello { Name = "Client 1" });
}
或者,如果愿意,可以改用 RedisMessageFactory
,它提供对 IMessageQueueClient and IMessageProducer:
IMessageFactory redisMqFactory = new RedisMessageFactory(redisManager);
using (var mqClient = redisMqFactory.CreateMessageQueueClient())
{
mqClient.Publish(new Hello { Name = "Client 1" });
}
它仍然需要 Redis MQ Server to be started on the Server,但客户端只需要能够发布到 Redis 实例。