test signal net method library asp javascript long-polling signalr

javascript - net - ¿Cómo determinar la desconexión del servidor del cliente SignalR?



signalr server c# (6)

La pregunta es ¿cómo puede detectar el cliente JavaScript de SignalR cuando se pierde la conexión con el servidor?

Gracias por cualquier respuesta!


A partir de SignalR v0.5.1 funciona de esta manera:

$.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!"); } });

Para más detalles visite este sitio web:

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


Esto me funcionó usando "@aspnet/signalr": "^1.0.0" paquete npm

const connection = new signalr.HubConnectionBuilder() .withUrl(''url'') .configureLogging(signalr.LogLevel.Information) .build() connection.onclose(() => { // close logic goes here })



Lo de abajo, funcionó para mí:

var connection = $.hubConnection(''signalrConnectionUrl''); connection.disconnected(function() { console.log(''Connection disconnected''); });

Estoy usando la versión: 2.1.2

Vea el siguiente enlace para referencia: Link


Si está utilizando hubs, entonces implemente la interfaz IDisconnect.

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

En las conexiones persistentes puede anular OnDisconnectAsync, (de la wiki de SignalR en https://github.com/SignalR/SignalR/wiki/PersistentConnection )

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


Un concentrador tiene un método de disconnect que le permitirá agregar una devolución de llamada cuando se produzca la desconexión:

myHub.disconnect(function() { alert(''Server has disconnected''); });

Si no está utilizando hubs, el código para el método de desconexión lo ayudará:

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

Esto muestra la sintaxis para enganchar en el evento onDisconnect de la conexión subyacente.