2013-12-08 114 views
3

如果用戶導航到除我以外的其他站點,或者點擊X按鈕完全關閉瀏覽器,那麼OnDisconnected在一段時間後仍會被調用嗎?如果用戶離開網站,SignalR會調用OnDisconnected

我問的原因是因爲我需要在用戶離開時更新數據庫,以便它不會將用戶顯示爲仍然在房間中。

- 即使用戶完全關閉了瀏覽器,下面的功能是否會在一段非活動後被調用?

public override async Task OnDisconnected() 
{ 
    if (!string.IsNullOrEmpty(this.Context.QueryString["acroomid"])) 
    { 
     string roomid = this.Context.QueryString["acroomid"], 
       uid = this.Context.QueryString["uid"], 
       isPro = this.Context.QueryString["isPro"]; 

     await Groups.Remove(Context.ConnectionId, roomid); 

     ChatManager.LeaveChatRoom(uint.Parse(roomid), new Guid(Membership.GetUser().ProviderUserKey.ToString())); 
     Clients.Group(roomid).gone(new Attendee(Context.ConnectionId, Membership.GetUser().UserName, bool.Parse(isPro))); 
    }; 
} 

回答

相關問題