【问题标题】:Solace - How to create ISubscription instance to be used by Session.CreateFlow methodSolace - 如何创建 ISubscription 实例以供 Session.CreateFlow 方法使用
【发布时间】:2019-09-06 15:30:39
【问题描述】:
  1. 我正在尝试通过 .NET API 为我的持久主题端点创建订阅者。

我有以下方法,我正在尝试为我的持久主题端点创建一个流。我不明白 Session.CreateFlow 方法中对 ISubscription 实例的需求是什么。 (https://docs.solace.com/API-Developer-Online-Ref-Documentation/net/html/a548a98a-9134-c167-2517-192a26ceed77.htm)

如何创建 ISubscription 实例,它应该是什么?

 public void Start()
        {
            //Create a instance of a durable topic endpoint
            topic = ContextFactory.Instance.CreateDurableTopicEndpointEx(topicName);

            FlowProperties flowProps = new FlowProperties();
            flowProps.FlowStartState = false;
            if (selector != null)
            {
                flowProps.Selector = selector;
            }
            flowProps.AckMode = ackMode == AckMode.ClientAcknowledge ? MessageAckMode.ClientAck : MessageAckMode.AutoAck;
            if (windowSize.HasValue)
            {
                flowProps.WindowSize = windowSize.Value;
            }
            flow = session.CreateFlow(flowProps, topic, null, HandleFlowMessageEvent, HandleFlowEvent);
            flow.Start();
        }  

我目前将它作为 null 传递,但我得到了错误 当端点为 ITopicEndpoint 类型时,订阅必须为非空

  1. 其次,我有一个用于流事件和会话事件的消息处理程序,因此当消息通过哪个处理程序时,它会调用它。我希望在连接到持久主题端点时在 FlowMessageHandler 中处理消息。请问有人可以对此进行更多说明吗?

    //会话消息事件处理程序

    session = context.CreateSession(sessionProperties, HandleSessionMessageEvent, HandleSessionEvent);

    //流消息事件处理程序

    flow = session.CreateFlow(flowProps, topic, null, HandleFlowMessageEvent, HandleFlowEvent);

【问题讨论】:

    标签: solace


    【解决方案1】:
    1. 对于持久主题端点,如果您有多个订阅者,那么每个订阅者都必须使用唯一的订阅名称进行注册(您可以根据需要提供任何名称),以便代理可以与特定的订户。即使订阅者关闭了一段时间并重新连接,它也不会在此期间丢失消息。代理将消息推送给订阅者。您可以通过 Solace Admin 客户端或代码创建订阅者。 Solace 管理员 -> 选择 V​​PN -> 选择端点选项卡 -> 选择持久主题端点 -> 单击 + 号以创建订阅者 -> 确保为“所有其他权限”选择使用。

    2. 消息首先发送到会话处理程序,然后发送到流处理程序。因此,您可以访问来自两个处理程序的消息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多