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
})
La forma en que SignalR 2.0 hace esto es así:
$.connection.hub.disconnected(function () {
console.log(''Connection disconnected'')
});
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.