我如何在集线器之外获取客户端connectionId/clientId?我已经做到了以下几点:

var context = GlobalHost.ConnectionManager.GetHubContext<MyHub>();

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

最佳答案

您可以在集线器上实现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());
    }
}

关于asp.net-mvc - 在SignalR集线器之外获取connectionId,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10600608/

10-11 19:57