想要仅从某个视图阻止默认signalR OnDisconnect

时间:2014-01-24 00:35:40

标签: c# asp.net-mvc asp.net-mvc-4 signalr signalr-hub

现在,我已经覆盖了SignalR的OnDisconnect方法,如下所示:

public override Task OnDisconnected()
{
    if (this.Context.User != null)
    {
        string userName = this.Context.User.Identity.Name;
        var repo = new LobbyRepository();
        Clients.Group("Lobby").remove(userName);
        repo.RemoveFromLobby(userName);
    }
    return base.OnDisconnected();
}

但是,每次用户导航到任何视图时都会触及此代码,暂时中断signalR连接。如何仅在用户请求某个视图时才能防止这种情况发生?

1 个答案:

答案 0 :(得分:0)

只要您在同一页面中,就可以保持连接,如果您离开,连接就会结束。

您可以使用名为“点击劫持”http://mislav.uniqpath.com/2011/03/click-hijack/

的技术,使用Ajax替换页面内容

但请记住,连接与您的网页相关联。

干杯。