跳到主要内容

在PubSub+ JCSMP API中创建上下文

上下文用于组织 PubSub+ JCSMP API 应用程序与 PubSub+ 事件代理之间的通信。每个客户端应用程序至少必须使用一个上下文。上下文作为容器,在其中可以配置一个或多个会话,并处理与会话相关的事件。它封装了驱动网络 I/O 和消息传递通知的线程,这些线程与该上下文关联的会话及其组件相关。

上下文属性用于规定上下文的行为。如果没有指定特定的上下文属性,则使用默认值。有关上下文属性的信息,请参阅 PubSub+ JCSMP 消息传递 API 参考。

回调和委托

为了实现最佳性能,在开发用于 PubSub+ API 的应用程序时应遵循以下规则:

  • 上下文线程必须运行,以便检测流量控制的缓解并解除等待的应用程序线程的阻塞。
  • 上下文线程必须运行,以便完成会话连接序列并解除等待连接完成的应用程序的阻塞。
  • 上下文线程必须运行,以便解除等待订阅请求确认的应用程序的阻塞。

因此,应用程序不应在回调/委托例程中阻塞,因为这可能会导致应用程序死锁,或者至少严重降低接收性能。在回调例程中运行过长时间会延迟 SolClient 的处理,从而阻止 API 解除可能正在等待发送消息确认或在流量控制情况下被阻塞的其他应用程序线程的阻塞。

PubSub+ JCSMP API 隐式创建默认上下文;然而,它也提供了创建新上下文的能力。要创建上下文,请调用 JCSMPFactory.createContext(...) 方法。创建后,上下文会自动启动。要销毁上下文,请调用 Context.destroy()