了解和处理SignalR连接生命周期

官方网站http://www.asp.net/signalr/overview/hubs-api/handling-connection-lifetime-events

如何处理Hub类中的连接生命周期内的事件

在Hub类中重写OnConnectedOnDisconnected,和 OnReconnected 方法

public class ContosoChatHub : Hub{
    public override Task OnConnected()
    {
        // 在这添加你的代码.   
        // 例如:在一个聊天程序中,记录当前连接的用户ID和名称,并标记用户在线.
        // 在该方法中的代码完成后,通知客户端建立连接,客户端代码
        // start().done(function(){//你的代码});
        return base.OnConnected();
    }

    public override Task OnDisconnected()
    {
        // 在这添加你的代码.
        // 例如: 标记用户离线 
        // 删除连接ID与用户的关联.
        return base.OnDisconnected();
    }

    public override Task OnReconnected()
    {
        // 在这添加你的代码.
        // 例如:你可以标记用户离线后重新连接,标记为在线       
        return base.OnReconnected();
    }}

每当浏览器导航到一个新的页面,就会建立一个新的连接,这意味着SignalR将在OnConnected ()后,执行OnDisconnected ()方法,

SignalR在创建新连接后,总是创建新的连接ID.

当连接暂停后,SignalR调用OnReconnected() 方法使连接恢复,

 ()方法调用后,SignalR不能自动重新连接,例如浏览器导航到了新的网页,因此,可以指定用户事件顺序为: OnConnectedOnReconnectedOnDisconnected;或者 OnConnectedOnDisconnected

 事件,可以查阅如何处理SignalR生命周期

posted @ 2017-03-13 14:49  DemiGoo  阅读(951)  评论(0编辑  收藏  举报