是否有在SignalR 2.x版本中使用System.Web HTTPContext SessionId的解决方法?
我们正试图从SignalR 1.x迁移到SignalR 2.x,并遇到了一些问题。是否有在SignalR 2.x版本中使用System.Web HTTPContext SessionId的解决方法?
的应用程序已经使用SignalR 1.x中做到“实时”的后端和前端客户端之间(推)communcations。在SignalR 1.x中,我们可以访问System.Web HttpContext会话状态。具体来说,我们使用SessionId来跟踪和管理活动的SignalR连接。
我们现在正在尝试升级到SignalR 2.x.不幸的是,不再支持访问System.Web HttpContext。这是因为SignalR请求在会话状态模块初始化之前处理。
现在我们的任务是提出一些其他方式来唯一跟踪SessionId以外的连接。一个想法是从客户端获取一些东西,并通过我们最初的请求来订阅SignalR通知。我正在查看这些请求cookie,并想知道是否有我可以在那里使用的东西。
对此有何看法?
感谢, JohnB
相反时段,SignalR利用联系。按照http://asp.net/signalr网站,“连接到集线器的每个客户端传递一个唯一的连接ID。您可以在轮毂方面的Context.ConnectionId
属性检索此值。”
此外,Context
仍具有用户属性,保留的,而不是使用会话用户(Context.User.Identity.Name
)
因此的身份(因此用户名),你可以使用的ConnectionId的来识别用户。
此页面将进一步了解:http://www.asp.net/signalr/overview/signalr-20/hubs-api/mapping-users-to-connections