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

时间:2013-10-28 10:40:28

标签: 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);
}

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

1 个答案:

答案 0 :(得分:29)

你可以这样做:

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

    proxy.Invoke(methodName, data);
}