如何在Silverlight LOB应用程序中处理多个信号器集线器

时间:2013-06-26 22:37:33

标签: silverlight signalr signalr-hub

我想在Silverlight LOB应用程序中实现SignalR(使用caliburn micro)。 客户端由用户动态加载的许多模块组成。

在一个模块中,我可以拥有许多活动的视图模型,每个模型都需要访问不同的集线器。

我确实阅读了有关SignalR(http://www.asp.net/signalr/overview/hubs-api/hubs-api-guide-net-client)的所有文档,但我仍然对如何在不是单页应用程序时使用signalr感到困惑。

我知道我的应用程序中只能有一个连接,所以我需要在我的引导程序中创建它。我创建了一个服务来保存一个hubconnection单例。因为我需要在调用start()之前创建代理,我从我的服务器获取所有已知集线器的列表,并为每个集线器创建一个代理。然后将代理存储在一个字典中,以便能够将它们提供给任何视图模型。 VM将共享相同的代理实例,这是一个问题吗?

这是在NO单页应用程序中使用signalr的方法吗?

我不确定我的应用程序设计有信号器,所以如果有人可以分享他/她的经验,我将感激不尽

感谢

1 个答案:

答案 0 :(得分:0)

由于您没有首先创建集线器(由SignalR处理),因此没有理由在页面之间传递显式句柄。无论何时需要集线器(即从集线器类本身外部访问集线器时),您都可以这样:

GlobalHost.ConnectionManager.GetHubContext();