有没有办法在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,而不是实际的机制 - 我想确定在运行时调用的方法,而不是编译时。
答案 0 :(得分:29)
你可以这样做:
public void CallClientMethod(string methodName, MyObject data)
{
var ctx = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
IClientProxy proxy = ctx.Clients.All;
proxy.Invoke(methodName, data);
}