signalr-hub – 使用signalR通过浏览器会话的持久连接ID状态

我正在尝试构建一个聊天引擎,用户ID由其自动生成的signalR连接ID表示.在页面刷新时,实例化新连接时连接ID会更改.有没有办法保持用户的连接ID的状态,直到浏览器会话结束(即直到他在客户端结束他的会话).

任何指南或文件?这真的会有所帮助.

最佳答案
最常见的方法是维护静态List< CustomType>在您的集线器中,CustomType具有UserId和ConnectionId属性

这也是你可以遵循的一个实践:
http://www.tugberkugurlu.com/archive/mapping-asp-net-signalr-connections-to-real-application-users

我将我的connectionIds写入SignalR.OnConnected事件中的sql数据库,并在SignalR.OnDisconnected事件中删除它们,你将在表中获得一些孤立的连接记录,这没什么大不了的,只要确保你有一个created_date列并忽略任何根据您的需要,这么多小时或几天的连接. SignalR中也没有Session,甚至没有尝试过,这是一个已知的问题.为了获得当前用户,现代开箱即用的Microsoft MVC会员提供商可以正常工作.但您也可以轻松使用cookie来获取当前用户的名称/ ID.

转载注明原文:signalr-hub – 使用signalR通过浏览器会话的持久连接ID状态 - 代码日志