在SignalR中获取呼叫者

时间:2014-06-19 14:46:43

标签: asp.net-mvc signalr

如何在hub类之外获取SignalR调用者?首先,我实现了上下文,但无法检索调用者或连接ID。

    private readonly IHubContext _hubContext;

    public HomeController()
    {
        _hubContext = GlobalHost.ConnectionManager.GetHubContext<ProgressHub>();
    }

ConnectionId属性也无法从HomeController访问。

public class ProgressHub : Hub
{
    public string ConnectionId { get; set; }
    public override Task OnConnected()
    {
        ConnectionId = Context.ConnectionId;
        return base.OnConnected();
    }
}

最后在客户端上尝试访问集线器时出错 var id = $.connection.hub.id;

1 个答案:

答案 0 :(得分:0)

你不能。想想看:在各种情况下,你怎么可能从集线器外部取回呼叫者?您可能正在通过SignalR进行呼叫,因此在这种情况下您无法拥有呼叫者。 IHubContext必须涵盖所有情况,因此无法提供此类选项。