我的SignalR Hub类是否需要任何方法?

时间:2014-09-28 16:02:49

标签: c# asp.net-mvc signalr

根据我读过的文档,为了向客户发送消息,我只需要打电话:

var hubContext = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
hubContext.Clients.All.foo(msg);

所以... Hub类需要任何方法吗?如果没有,那么我所拥有的只是一个空类:

public class MyHub : Hub 
{
}

这似乎是一个毫无意义的设置。我是否错误地实施了这个?因为在集线器类中使用方法更有意义,然后调用这些方法向客户端发送消息。

此外,在集线器本身,我可以访问Context.connectionId,这样我就可以获取请求者的连接ID,然后阻止消息被触发到该客户端....如果Hub不应该有方法,那么有没有办法访问请求者的连接ID?

1 个答案:

答案 0 :(得分:0)

是的,你需要一个空的HUB类声明,因为 - 它实际上只是JS客户端和控制器之间的代理,所以它可能是空的,因为所有方法都是通过Clients动态变量调用的。

我的意思是没有这个,你可以工作,但你必须为此编写JS。以下链接对此进行了简要说明。

有关详细信息,请参阅此链接 - http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-javascript-client#genproxy