【问题标题】:SignalR - enumerate available hubs and hub methods from .NET clientSignalR - 从 .NET 客户端枚举可用的集线器和集线器方法
【发布时间】:2026-01-23 17:10:01
【问题描述】:

是否有(或将有)一种方法来枚举所有可用的集线器(及其方法)客户端,使用 C# 客户端?在SignalR.Client 库中没有看到类似的东西,但也许我错过了什么?

在 JS 客户端中这样做没有问题,因为所有信息都已经在 J​​S 代码中。

如果不可能,那么是否有计划实施此类功能?或者,如果它不能开箱即用,也许有解决方法?

【问题讨论】:

  • 回复:编辑:你可以自己做。
  • 是的,我知道,这是我会坚持的解决方法(自定义 URL,集线器信息公开为 JSON)。

标签: c# .net signalr


【解决方案1】:

在服务器上枚举客户端方法本质上是不可能的,因为客户端从不将它们的方法名称发送到服务器。

相反,您可以让客户端脚本循环其对象并自己将方法列表发送到服务器。

【讨论】:

  • 我猜你的意思正好相反——不可能在客户端枚举集线器方法,对吧?集线器位于服务器端 - 您可以毫无问题地枚举服务器端的那些。如果这就是你的意思,就像我想的那样......
  • 你是对的;我搞混了。 (我还没有真正使用过 Signalr)
  • 是的,没错。我们需要公开一个模式,但我们不会在 0.5 中这样做。也许下一个版本。
  • @dfowler 好的,谢谢。我将设置一个休息 URL 并在 JSON 中公开一个集线器列表 - 可以解决问题。
  • @SLaks 你说的是完全不同的东西——我不想枚举服务器上的客户端方法(事件订阅),而是要获取服务器模式(可用的集线器和方法),如大卫福勒指出。