SignalR客户端如何检测注销?
问题描述:
注意:这个问题是关于SignalR 认证事件,不运输事件,我已经覆盖。SignalR客户端如何检测注销?
场景:我的SignalR应用程序在2个选项卡中打开。其中之一,我注销。另一方面,我的SignalR连接似乎保持连接状态,但没有响应返回到通过集线器发送的请求。我如何检测这种情况?我已经在检测错误,重新连接和断开事件,但它似乎并不对应任何状态变化。这感觉像一个相对常见的情况,但我似乎无法找到任何有关它的文档。
答
据我所知,SignalR真的不知道你已经注销,所以似乎没有任何好办法做到这一点。我现在已经实现了一个单独的http端点“IsLoggedIn”,它返回true或false,并且我通过Ajax查询当用户注销时计算出来,但有必须是更好的方法...
So你想检测是否有一个选项卡(html/javascript上下文?)被关闭? – Caramiriel
不,这只是触发注销问题的便捷方式。我想检测任何种类的注销 - 也许一个身份验证cookie已经过期,也许用户已经使用了一些像gmail一样的“注销所有会话”功能 - 关键是要检测SignalR将不再实际回应请求 –
所以2打开标签的情况:你从一个标签注销,你想另一个注销以及? –