我想在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的方法吗?
我不确定我的应用程序设计有信号器,所以如果有人可以分享他/她的经验,我将感激不尽
感谢
答案 0 :(得分:0)
由于您没有首先创建集线器(由SignalR处理),因此没有理由在页面之间传递显式句柄。无论何时需要集线器(即从集线器类本身外部访问集线器时),您都可以这样:
GlobalHost.ConnectionManager.GetHubContext();