我已经创建了自己的IConnectionIdGenerator
为了简单起见,我的 Webforms 应用程序中通过登录的经过身份验证的用户的 EmailAddress.ToLower() 命名客户端连接 ID(如果不可用,则默认返回 guid)。
从我的页面代码调用客户端一切正常。
hubContext.Clients[LoggedInUser.EmailAddress.ToLower()].updateProgress(i)
然而,似乎如果我使用相同的登录用户打开另一个浏览器或选项卡,两个窗口上的foreverframe连接都会不断给出301结果,然后交替和重复给出200结果。
我认为分配相同的连接 ID 只会为我提供一种简单的方法,以确保消息正确地发送到系统的正确用户,无论它们连接在哪里。
它们是否始终必须是唯一的,我是否必须构建另一层来管理与登录用户帐户的连接,或者我在这里错过了一个技巧吗?
连接 ID 必须是唯一的。如果您不使它们独一无二,那么其中一个连接会将另一个连接踢出离线状态。在内部,我们使用连接 ID 作为连接的唯一标识符,并断开连接。
如果您收到重复的 301 响应,可能是因为您的应用程序中有一个名为 signalr 的文件夹,并且它与共享连接 ID 没有直接关系。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)