【发布时间】:2015-03-20 11:28:11
【问题描述】:
我需要从我的服务器后端调用组中的所有 SignalR 客户端。
我需要 Clients.OthersInGroup('MyGroupName').MyFunction 的等价物,但需要通过 IHubContext 对象(或从 Hub 实例外部)。这有可能吗?
我的用例:我有一个提供商托管的 SharePoint 应用程序。 SignalR 用于实时更新其他客户端的更改(使用 SignalR JavaScript 客户端)。由于该应用程序支持多租户,因此连接到服务器的客户端可以来自不同的 SharePoints 租户。通信应始终仅在同一租户的客户端之间进行。因此,如果客户端连接,则会将其添加到他的 SharePoint 租户的 SignalR 组中。 现在有一些操作,比如显示一个文档,如果它不存在就创建它,发生在服务器上。在这种情况下,客户端调用后端的 URL,然后返回文档。如果它是新创建的,则应将其传达回受影响租户的客户端。
【问题讨论】:
-
您能否修改问题并添加一些有关您的用例以及您想要实现的目标的更多信息?
OthersInGroup之类的功能通常只有在 Hub 内部使用时才有意义。 -
如果我理解正确,您希望向租户中的所有人显示此通知,创建文档的用户除外。对吗?
-
是的,这正是我的情况。
-
例外,在这种特殊情况下甚至对租户中的每个人(包括创建请求的客户)都是如此。我使用 SharePoint SiteCollection URL 作为组标识符,因此每个人都从同一个 SharePoint URL(=相同的 SignalR 组)连接。服务器代码知道创建文档的 SharePoint 网站集 url。
标签: signalr