我正在使用 SignalR,但遇到了问题。当在一个浏览器窗口中启动连接,然后用户在另一个浏览器窗口中登录时,用户身份会更改(这会导致错误“System.InvalidOperationException:无法识别的用户身份。在活动 SignalR 连接期间用户身份无法更改”在集线器上调用方法时的服务器。
我在客户端上使用此代码:
proxy.server.analyze(content)
.done(function () {
console.log('Success!');
})
.always(function () {
console.log('This is always called!');
})
.fail(function (error) {
console.log('This is never called!');
});
当我在服务器上看到错误时,永远不会调用失败函数,因此客户端似乎无法处理此问题并停止和启动连接。
那么是否有处理这种情况的“最佳实践”方式?如何在客户端上检测到另一个浏览器窗口中的用户身份已更改并停止并重新启动连接?