2012-02-01 18 views

risposta

25

Un hub ha un metodo disconnect che vi permetterà di aggiungere una richiamata quando si scollega:

Se non si utilizzano hub, il codice per il metodo di disconnessione l aiuto fuori:

$(connection).bind("onDisconnect", function (e, data) { 
    callback.call(connection); 
}); 

Questo mostra la sintassi per l'aggancio su caso OnDisconnect della connessione sottostante.

+0

Molto bene, grazie! – Alexandr

+2

Non utilizzare bind ... basta effettuare la connessione.disconnected – davidfowl

+0

Il metodo corretto per questo è ora '$ .connection.hub.disconnected (callback)' –

12

Se si utilizzano hub, quindi implementare l'interfaccia IDisconnect.

public class ChatHub : Hub, IDisconnect 
{ 
    public void Disconnect() 
    { 
     Debug.WriteLine(Context.ConnectionId + " disconnected"); 
    } 
} 

Su connessioni persistenti è possibile ignorare OnDisconnectAsync, (dal wiki SignalR a https://github.com/SignalR/SignalR/wiki/PersistentConnection)

public class MyEndPoint : PersistentConnection 
{ 
    protected override Task OnDisconnectAsync(string clientId) 
    { 
     return Connection.Broadcast("Client " + clientId + " disconncted"); 
    } 
} 
+2

Grazie, ma ho bisogno sul lato client ... – Alexandr

+0

Questo è in realtà molto utile come risposta non correlata alla domanda, grazie! – Josh

5

Partendo SignalR v0.5.1 Funziona in questo modo:

$.connection.hub.stateChanged(function (change) { 
    if (change.newState === $.signalR.connectionState.reconnecting) { 
     console.log("liveFeed is reconnecting!"); 
    } 
    else if (change.newState === $.signalR.connectionState.connected) { 
     console.log("liveFeed is connected!"); 
    } 
}); 

Per maggiori dettagli controllare questo sito:

http://weblogs.asp.net/davidfowler/archive/2012/06/10/signalr-0-5-1-released.aspx

3

Il seguito, ha lavorato per me:

var connection = $.hubConnection('signalrConnectionUrl'); 

connection.disconnected(function() { 
    console.log('Connection disconnected'); 
}); 

Sto utilizzando la versione: 2.1.2

Vedere il seguente link di riferimento: Link

Problemi correlati