淺析SignalR連線生命週期的幾個重要方法

龐順龍發表於2019-05-11

參照官網:http://www.asp.net/signalr/overview/guide-to-the-api/handling-connection-lifetime-events

一般我們只會處理hub類的方法,重寫OnConnectedOnDisconnected,和 OnReconnected 方法

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不能自動重新連線,例如瀏覽器導航到了新的網頁,因此,可以指定使用者事件順序為: OnConnected, OnReconnected, OnDisconnected

或者 OnConnectedOnDisconnected 事件,可以查閱如何處理SignalR生命週期




龐順龍最後編輯於:3年前

內容均為作者獨立觀點,不代表八零IT人立場,如涉及侵權,請及時告知。

相關文章