我正在使用 SignalR 2,但我无法弄清楚如何使用我的 Hub 方法,例如从控制器操作内部。
我知道我可以做到以下几点:
var hub = GlobalHost.ConnectionManager.GetHubContext<T>();
hub.Clients.All.clientSideMethod(param);
但这会直接在客户端执行该方法。
如果我的服务器端ClientSideMethod(param)
方法中有业务逻辑,我想从控制器调用与从客户端调用它时相同的方式怎么办?
目前我public static void ClientSideMethod(param)
在我的集线器内使用,在这种方法中我使用IHubContext
来自ConnectionManager
.
这样做没有更好的办法吗?
以下不起作用(在 SignalR 2 中不再起作用?):
var hubManager = new DefaultHubManager(GlobalHost.DependencyResolver);
instance = hubManager.ResolveHub(typeof(T).Name) as T;
instance.ClientSideMethod(param);
访问客户端时,出现“不支持通过集线器管道创建集线器”异常。