ServiceStack Messaging API:它可以进行广播吗?

ServiceStack Messaging API: Can it make a broadcast?

因为我有 mentioned, I am using ServiceStack Messaging API (IMessageQueueClient.Publish) 以及更低级的 IRedisClient.PublishMessage.

当我需要一个特定的 message/request 仅由 module/service 的一个实例处理时,我使用 Messaging API,所以即使我可能有多个模块 运行 所有监听 MyRequest,只有一个服务接收消息并处理它。

我在进行广播时使用 IRedisClient.PublishMessage,pub/sub 情况,发送每个人都应该收到的请求,该请求在特定的 Redis 频道上侦听。

但是,我处于使用消息传递 API 很有用的情况,但是进行广播,以便 所有正在收听的实例 特定消息类型,获取消息,而不仅仅是消息。

(这样做的原因是为了简化我们对 Redis 的使用以及我们如何订阅 events/request,但我现在不会对此进行详细介绍。关于此的更多背景信息是 .)

是否有消息传递的“广播方式”API?

不是,ServiceStack Messaging的目的只是通过MQ调用ServiceStack服务。任何其他 MQ 功能都超出了 ServiceStack MQ 的目的和范围,您需要直接针对 MQ 提供者 API 进行开发以访问其广播功能。

Server Events 是一个 ServiceStack 功能,支持向 user-defined 频道的订阅者广播消息,但它是一个完全不同的实现,服务于不同的 use-case 用于发送“服务器推送”real-time 通过 HTTP 或 gRPC 的事件,例如它不使用 MQ 代理并且 pub/sub 消息不是持久的(即只有订阅者在发送消息时会收到它们)。