4

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

任何指南或文档?这真的会有所帮助。

4

1 回答 1

4

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

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

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

于 2013-08-06T07:35:30.583 回答