7.3. 创建共享订阅
共享订阅是远程服务器上代表一个或多个消息接收器的一种状态。由于它是共享的,所以多个客户端可以从同一消息流消耗。
客户端通过在接收器源上设置 shared 功能来配置共享订阅。
共享订阅通过组合客户端容器 ID 和接收器名称组成订阅 ID 来唯一标识。这些必须具有稳定值,以便多个客户端进程可以找到相同的订阅。如果除了 shared 外还设置了 global 能力,则只使用接收器名称来标识订阅。
要创建共享订阅,请按照以下步骤执行:
将连接容器 ID 设置为 stable 值,如
client-1:Connection conn = new Connection(new Address(connUrl), SaslProfile.Anonymous, new Open() { ContainerId = "client-1" }, null);Connection conn = new Connection(new Address(connUrl), SaslProfile.Anonymous, new Open() { ContainerId = "client-1" }, null);Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过设置
shared功能,将接收器源配置为共享:Source source = new Source() { Address = "notifications", Capabilities = new Symbol[] {"shared"}, };Source source = new Source() { Address = "notifications", Capabilities = new Symbol[] {"shared"}, };Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用稳定名称(如
sub-1)创建接收器,并应用源属性:ReceiverLink receiver = new ReceiverLink(session, "sub-1", source, null);
ReceiverLink receiver = new ReceiverLink(session, "sub-1", source, null);Copy to Clipboard Copied! Toggle word wrap Toggle overflow
如需更多信息,请参阅 SharedSubscribe.cs 示例。