在Hub,SignalR之外获取connectionId

Inx*_*Inx 6 asp.net-mvc signalr

如何在Hub外部获取客户端connectionId/clientId?..我已设法执行以下操作:

var context = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
Run Code Online (Sandbox Code Playgroud)

但是在那个上下文对象中没有这样的东西clientId.

Woo*_*Hoo 4

您可以在集线器上实现 IConnected/IDisconnect 并手动跟踪客户端(例如在数据库中),然后在需要时拉回列表。下面的示例来自SignalR Wiki

public class Status : Hub, IDisconnect, IConnected
{
    public Task Disconnect()
    {
        return Clients.leave(Context.ConnectionId, DateTime.Now.ToString());
    }

    public Task Connect()
    {
        return Clients.joined(Context.ConnectionId, DateTime.Now.ToString());
    }

    public Task Reconnect(IEnumerable<string> groups)
    {
        return Clients.rejoined(Context.ConnectionId, DateTime.Now.ToString());
    }
}
Run Code Online (Sandbox Code Playgroud)