如果我有多个可以使用多个集线器类的页面,那么管理这个类别的最佳方法是什么?您网站上的多个signalR连接/集线器
- 导航到网站中的另一个页面,实质上是“重新打开”与前一页上打开的同一个集线器类的连接是不是很糟糕?
- 页面上的多个集线器连接是可以的,因为它们全都统一在一个连接中,即使它们是不同的集线器类别?
如果我有多个可以使用多个集线器类的页面,那么管理这个类别的最佳方法是什么?您网站上的多个signalR连接/集线器
- 导航到网站中的另一个页面,实质上是“重新打开”与前一页上打开的同一个集线器类的连接是不是很糟糕?
- 页面上的多个集线器连接是可以的,因为它们全都统一在一个连接中,即使它们是不同的集线器类别?
要开始与集线器阅读WIKI entry for Hubs和Client Side of Hubs。根据多个页面的上下文有几件事。
例子:
你有一个页面,有两个部分,这显示实时用户活动和一个区域来查看用户做一个表的实时数据变化的曲线图。你会创建两个中心还是两个组或什么?还有其他页面使用相同的图形和数据表。
我的解决方案:
当您在页面之间切换时,客户端将连接到同一个集线器并请求getGraph或getDataTable或两者并使用相关数据填充其客户端。同样在服务器数据改变时,你可以调用客户端的方法来更新所有客户端或组他们的(让我们添加了这种复杂性)
假设你有学生和老师在看你的应用程序。他们需要不同级别的数据访问。您可以使用群组将其保留在中心上,以便您不将教师信息发送给学生和学生数据给教师。
回到“不好”和“可以”的问题,这是很难建立的,没有实际应用的背景。我不能想到一个场景,除了Performance,你可以证明多个枢纽。
您可以让多个集线器在您的站点上共享一个连接。 SignalR 2.0已更新,可通过一个信号连接处理多个集线器,而不会出现性能损失。
官方文档:http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-server#multiplehubs
所有客户端将使用相同的URL建立与您的服务(“/ signalr”或您的自定义URL,如果你指定一个)一个SignalR连接,该连接用于所有由服务定义的集线器。
与多个集线器中的所有Hub功能定义相比,没有性能差异。
该应用程序针对不同类型的数据具有不同的集线器。我们的应用程序非常庞大,这是一个关注的逻辑分离。一些前端客户端只需要一部分实时数据,并且有一个他们可以连接的集线器,而不是管理组是有意义的。 – 2015-10-30 18:32:35
正如@sam在回答中所建议的那样,您可以这样做,并在此处进行解释http://www.asp.net/signalr/overview/guide-to-the-api/hubs-api-guide-server#multiplehubs – 2015-11-09 16:56:42
I我意识到,这就是我设置我的应用程序的方式。我只是评论,因为你说你不能想到一个场景,你可以证明多个枢纽 – 2015-11-09 21:06:21