我如何在集线器之外获取客户端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/