我有一个Signal R应用程序,当用户登录和退出网站时,我正在聊天窗口中设置用户的在线状态。
在我的OnDiconnected()方法中,我调用来更新已登录用户的状态。
Clients.All.setConnectionStatus(profileId, isConnected);
方法
public override Task OnDisconnected(bool stopCalled)
{
// do some work
if (stopCalled == false) // log off only
Clients.All.setConnectionStatus(profileId, isConnected);
return base.OnDisconnected(stopCalled);
}
但是此方法在每次页面加载时都运行,因此我发现如果我注销,参数'stopCalled'返回false,而如果我重定向到另一个页面或页面加载则返回true。
那么在用户注销时只发送状态(stopCalled == false)是否可以?这样我就不会在用户遍历网站时更新他们的在线状态?