【发布时间】:2019-09-06 15:30:39
【问题描述】:
- 我正在尝试通过 .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 类型时,订阅必须为非空
-
其次,我有一个用于流事件和会话事件的消息处理程序,因此当消息通过哪个处理程序时,它会调用它。我希望在连接到持久主题端点时在 FlowMessageHandler 中处理消息。请问有人可以对此进行更多说明吗?
//会话消息事件处理程序
session = context.CreateSession(sessionProperties, HandleSessionMessageEvent, HandleSessionEvent);
//流消息事件处理程序
flow = session.CreateFlow(flowProps, topic, null, HandleFlowMessageEvent, HandleFlowEvent);
【问题讨论】:
标签: solace