以下是该方案:
我们正在实施一个允许用户与内部端点“通信”的应用程序。我们正在做一些研究, Windows Azure服务总线主题似乎是一个不错的选择,因为它可以帮助我们创建双向通信&帮助我们解决防火墙,NAT设备的问题。
但是,当用户通过无状态Web应用程序(在本例中为MVC 3)与计算机进行交互时,对每个请求重新创建 TopicClient 都是不可接受的。
由于每个用户都有自己的端点,因此按照建议的方式共享一个 TopicClient 也不起作用。
另一种方法是使用会话为每个用户保留TopicClient,但使用会话似乎不是无状态和托管在Windows Azure Web应用程序上的好选择。
非常感谢任何帮助。
答案 0 :(得分:0)
客户端和服务之间的实际连接存在于MessagingFactory级别,从该工厂创建的所有TopicClient对象将共享相同的连接。因此,您可以根据需要缓存MessagingFactory和/或多个TopicClient。此外,这些对象是线程安全的,因此可以由不同的消费者同时共享和使用。