我已经创建了自己的IConnectionIdGenerator
实现,为了在我的 webforms 应用程序中简单起见,通过登录的经过身份验证的用户的 EmailAddress.ToLower() 命名客户端连接 ID(如果不可用,则默认返回一个 guid)。从我背后的页面代码调用客户端一切正常。
hubContext.Clients[LoggedInUser.EmailAddress.ToLower()].updateProgress(i)
但是,似乎如果我打开另一个具有相同登录用户的浏览器或选项卡,两个窗口上的永远框架连接都会不断给出 301 结果,然后交替出现 200 结果并重复。
我认为分配相同的连接 ID 只会给我一个简单的方法来确保消息正确地发送到系统的正确用户,无论他们连接到哪里。
它们是否总是必须是唯一的,我是否必须构建另一层来管理与登录用户帐户的连接,或者我在这里错过了一个技巧?