我正在尝试构建一个聊天引擎,用户ID由其自动生成的signalR连接ID表示。在页面刷新时,实例化新连接时连接ID会更改。有没有办法保持用户的连接ID状态,直到浏览器会话结束(即直到他在客户端结束他的会话)。
任何指南或文档?这真的很有用。
答案 0 :(得分:4)
最常见的方法是在您的集线器中维护静态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。