如何从IHubContext调用动态选择的SignalR客户端方法?

jim*_*rra 13 signalr

有没有办法在SignalR中做这样的事情:

public void CallClientMethod(string methodName, MyObject data)
{
    var ctx = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
    ctx.Clients.All.methodName(data);

    // or alternatively
    ctx.Clients.All.CallClientMethod(methodName, data);
}
Run Code Online (Sandbox Code Playgroud)

上面的例子说明了intent,而不是实际的机制 - 我想确定在运行时调用的方法,而不是编译时.

dav*_*owl 30

你可以这样做:

public void CallClientMethod(string methodName, MyObject data)
{
    var ctx = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
    IClientProxy proxy = ctx.Clients.All;

    proxy.Invoke(methodName, data);
}
Run Code Online (Sandbox Code Playgroud)